[BACK-PROC-06] Интеграция B2B-приёмки с AuthService и публикация списка продуктов в Kafka
Сервис процессов добавления продуктов
NoteКраткая карточка задачи
- Репозиторий / Компонент:
product_process_service(Go). - Стек: Go, gRPC/HTTP Client, Apache Kafka.
- Тип задачи: Backend (Интеграция и Очереди).
- Статус: Готово к реализации
Описание задачи
Необходимо отрефакторить текущий B2B-эндпоинт приёмки продуктов от магазинов. Требуется удалить хардкод токена, настроить синхронный запрос в AuthService для проверки партнера, и в случае успеха — отправлять (пушить) входящий JSON-список продуктов в Kafka-топик для асинхронной обработки воркером.
Инструкция по шагам
- Удаление захардкоженной проверки: Полностью вырезать из кода проверку вида
if token == "hardcoded_token". - Интеграция сетевого клиента: Подключить gRPC/HTTP клиент для связи с
AuthService. Вызывать методValidateStoreToken, передавая токен из заголовка запроса (Authorization: Bearer <b2b_token>). - Обработка ответа авторизации:
- Если
AuthServiceвернул ошибку/отказ — мгновенно прерывать операцию и отдавать магазину структурированную ошибку (вспоминаем прошлую задачу: маппинг в gRPC код 16 или HTTP 401).
- Если
- Валидация JSON и публикация в Kafka (Пайплайн):
- В случае успешной авторизации, распарсить входящий массив продуктов от магазина.
- Сформировать DTO-сообщение для очереди, обогатив его данными
store_id. - Выполнить отправку (
Produce) сообщения в Kafka-топикb2b_products_intake. Сообщение должно быть отправлено строго в формате JSON Lines / структурированного JSON.