Senior
32
Как обрабатывать закрытие вакансии — она должна архивироваться на всех работных сайтах?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
При закрытии вакансии важно обеспечить, чтобы она была корректно удалена или архивирована на всех площадках, где она размещена. Обычно процесс выглядит так:
- В системе управления вакансиями меняется статус вакансии на "закрыта".
- Отправляются API-запросы или используются интеграции с работными сайтами для удаления или архивирования вакансии.
- Проверяется успешность операций на каждой площадке, с логированием ошибок.
В Go это можно реализовать через последовательные или параллельные HTTP-запросы с обработкой ответов и повторными попытками в случае ошибок. Важно учитывать, что разные сайты могут иметь разные API и требования к аутентификации.
Пример упрощённого кода для отправки запроса на архивирование вакансии:
package main
import (
"bytes"
"fmt"
"net/http"
)
func archiveVacancyOnSite(vacancyID string, apiURL string, token string) error {
reqBody := []byte(fmt.Sprintf(`{"vacancy_id":"%s","action":"archive"}`, vacancyID))
req, err := http.NewRequest("POST", apiURL, bytes.NewBuffer(reqBody))
if err != nil {
return err
}
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("failed to archive vacancy, status: %s", resp.Status)
}
return nil
}
Таким образом, закрытие вакансии сопровождается синхронизацией статуса на всех площадках.