Назад к вопросам
OZON
Senior
8
Как обрабатывать закрытие вакансии — она должна архивироваться на всех работных сайтах?
Компании, где спрашивали
Ответ от нейросети
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
}
Таким образом, закрытие вакансии сопровождается синхронизацией статуса на всех площадках.