Services/Service-Notification.md


Назначение

Отправление уведомлений пользователям.

БД

Структура

uuid пользователя email_usage email
uuid bool text(128)
  • uuid пользователя - id пользователя
  • email_usage - факт использования пользователем уведомлений по почте. Базовое значение - true.
  • email - название почты с маской text@text.text. Не может быть пустым. Должно быть уникальным.

Запросы к БД

  • добавление пользователя
    • имя функции: add_user
    • параметры: uuid пользователя и его почта
    • ответ: -
  • обновление использования почты
    • имя функции: update_email_usage
    • параметры: uuid пользователя и новое состояние использования
    • ответ: -
  • обновление почты пользователя
    • имя функции: update_email
    • параметры: uuid пользователя и новый почтовый адрес
    • ответ: -
  • получение данных уведомления пользователя
    • имя функции: get_user_notification_data
    • параметры: uuid пользователя
    • ответ: email

Структуры kafka

Входные

  • простой запрос
{
	"saga_uuid": "...",
	"event_uuid": "...",
	"operation_name": "...",
	"additional_info": {
		"user_uuid": "...",
		"notification_type": "...",
		"additional_info": "..."
	}
}
  • составной запрос:
{
	"saga_uuid": "...",
	"event_uuid": "...",
	"operation_name": "...",
	"user_data": {
		"user_uuid": "...",
		"email": "..."
	}
}

Выходные

  • удача
{
	"saga_uuid": "...",
	"event_uuid": "...",
	"operation_name": "...",
	"info": "..."
}
  • ошибка
{
	"saga_uuid": "...",
	"event_uuid": "...",
	"operation_name": "...",
	"status": 0,
	"info": "..."
}
  • полный набор данных
{
	"saga_uuid": "...",
	"event_uuid": "...",
	"operation_name": "...",
	"data": {
		"user_uuid": "...",
		"email_usage": bool,
		"email": "..."
	}
}

Ошибки

  • ошибки, связанные с grpc
    • 201- неизвестное название операции
    • 200 - невалидные пользовательские данные
  • ошибки уровня бизнес логики
    • 100 - не удалось отправить уведомление на почту
  • ошибки репозитория
    • 099 - другие ошибки репозитория
    • 003 - нет указанного пользователя
    • 002 - указанный пользователь существует
    • 001 - указанная почта уже существует

Запросы

  • добавить пользователя
  • обновить почту пользователю
  • получить данные настроек уведомлений пользователя
  • отправить уведомление

Добавить пользователя

  • Наименование запроса
    • add_user
  • Описание
    • добавляет пользователя в уведомления
  • Интерфейс входных данных:
    • составной запрос
  • Ответ на данный запрос:
    • ошибка
    • удача
  • Возможные статусы в ошибочном результате:
    • 201
    • 200
    • 001
    • 002

Обновить почту пользователю

  • Наименование запроса
    • update_email
  • Описание
    • обновляет почту пользователя
  • Интерфейс входных данных:
    • простой запрос
  • Ответ на данный запрос:
    • ошибка
    • удача
  • Возможные статусы в ошибочном результате:
    • 201
    • 200
    • 003
    • 001

Получить данные настроек уведомлений пользователя

  • Наименование запроса
    • get_notification_user_settings
  • Описание
    • возвращает настройки уведомлений пользователя
  • Интерфейс входных данных:
    • простой запрос
  • Ответ на данный запрос:
    • ошибка
    • полный набор данных
  • Возможные статусы в ошибочном результате:
    • 201
    • 200
    • 003

Отправить уведомление

  • Наименование запроса
    • send_notification
  • Описание
    • отправляет уведомление пользователю
  • Интерфейс входных данных:
    • простой запрос
  • Ответ на данный запрос:
    • ошибка
    • удача
  • Возможные статусы в ошибочном результате:
    • 201
    • 200
    • 100
    • 003
Ссылка на вики репозиторий