Сервис рассылки push-уведомлений
Общая информация
Сервис предназначен для управления рассылкой.
GET /
Описание: Получение списка уведомлений с сервера уведомлений.
Теги: Уведомления
Предварительная проверка: Требуется аутентификация пользователя (user role).
Параметры запроса (query):
* Все параметры передаются в виде query параметров и будут прокинуты на сервер уведомлений.
Ответ:
- 200 OK:
{ // Ответ от сервера уведомлений } - 4xx или 5xx: Возможные ошибки, связанные с обработкой запроса, например, ошибки сервера уведомлений.
{ "error": { // error от сервера уведомлений } }{ "error": "Internal Server Error" }
GET /all
Описание: Получение всех уведомлений с сервера уведомлений.
Теги: Уведомления
Предварительная проверка: Требуется аутентификация пользователя (user role).
Параметры запроса (query):
- Все параметры передаются в виде query параметров и будут прокинуты на сервер уведомлений.
Ответ:
- 200 OK:
{ // Ответ от сервера уведомлений } - 4xx или 5xx: Возможные ошибки, связанные с обработкой запроса, например, ошибки сервера уведомлений.
{ "error": { // error от сервера уведомлений } }{ "error": "Internal Server Error" }
GET /:customerId
Описание: Получение уведомлений для конкретного пользователя с сервера уведомлений.
Теги: Уведомления
Предварительная проверка: Требуется аутентификация пользователя (user role).
Параметры запроса (path):
customerId: (string, required) - ID пользователя.
Параметры запроса (query):
- Все параметры передаются в виде query параметров и будут прокинуты на сервер уведомлений.
Ответ:
- 200 OK:
{ // Ответ от сервера уведомлений } - 4xx или 5xx: Возможные ошибки, связанные с обработкой запроса, например, ошибки сервера уведомлений.
{ "error": { // error от сервера уведомлений } }{ "error": "Internal Server Error" }
POST /device
Описание: Добавление или обновление устройства для отправки уведомлений.
Теги: Уведомления
Предварительная проверка: Требуется аутентификация пользователя (user role).
Тело запроса (body):
{
"customerId": "user_id_uuid",
"FCMToken": "firebase_cloud_messaging_token"
//... другие поля
}
customerId: (string, required) - ID пользователя.FCMToken: (string, required) - FCM токен устройства.
Ответ:
- 201 Created:
{} - 500 Internal Server Error:
{ "error": "Internal Server Error" }
POST /send-bulk-notification-all-devices
Описание: Отправка массового уведомления всем устройствам.
Теги: Уведомления
Предварительная проверка: Требуется аутентификация пользователя (admin role).
Тело запроса (body):
{
"title": "Заголовок уведомления",
"body": "Текст уведомления"
}
title: (string, required) - Заголовок уведомления.body: (string, required) - Текст уведомления.
Ответ:
- 200 OK:
{ "success": true, "message": "Сообщения были отправлены", "result": "Messages sent to RabbitMQ" } success: (boolean) - Успешность отправки.message: (string) - Сообщение об успехе.result: (string) - Результат отправки в RabbitMQ.- 500 Internal Server Error:
{ "success": false, "message": "Проблема с отправкой сообщений" }
GET /customer
Описание: Получение списка пользователей для уведомлений.
Теги: Уведомления
Предварительная проверка: Отсутствует
Параметры запроса (query):
- Все параметры передаются в виде query параметров и будут прокинуты в репозиторий для фильтрации данных.
Ответ:
- 200 OK:
{
"items": [
{
"deviceId": 1,
"FCMToken": "some_token",
"lastMessageSentAt": "2024-01-01T00:00:00.000Z",
"customerId": "some_customer_id",
"fullName": "John Doe",
"birthday": "2024-01-01T00:00:00.000Z",
"orderStatus": "NEW",
"lastOrderTerminalId": "some_terminal_id",
"isSelfService": 0,
"orderCount": 12,
"lastOrderDate": "2024-01-01T00:00:00.000Z",
"averageCheck": 123,
"lastOrderTerminal": "Some restaurant",
"lastMessageSentAtFormat": "01.01.2024 (1 дн.)",
"birthdayFormat": "01.01.2024 (365 дн.)",
"lastOrderDateFormat": "01.01.2024 (1 дн.)"
}
],
"pagination": {
"currentPage": 1,
"pageSize": 50,
"totalPages": 1,
"totalItems": 1
}
}
- items`: (array) - Массив пользователей
deviceId: (integer) - ID девайсаFCMToken: (string) - FCM токенlastMessageSentAt: (string, date-time) - Дата последнего сообщенияcustomerId: (string) - ID пользователяfullName: (string) - Полное имя пользователяbirthday: (string, date-time) - День рождения пользователяorderStatus: (string) - Статус заказаlastOrderTerminalId: (string) - ID терминала последнего заказаisSelfService: (integer) - Является ли заказ самообслуживаниемorderCount: (integer) - Количество заказов пользователяlastOrderDate: (string, date-time) - Дата последнего заказа пользователяaverageCheck: (number) - Средний чек пользователяlastOrderTerminal: (string) - Название ресторана последнего заказаlastMessageSentAtFormat: (string) - Форматированная дата последнего сообщенияbirthdayFormat: (string) - Форматированная дата рожденияlastOrderDateFormat: (string) - Форматированная дата последнего заказа
pagination: (object) - Информация о пагинации.currentPage: (integer) - Текущая страница.pageSize: (integer) - Количество элементов на странице.totalPages: (integer) - Общее количество страниц.totalItems: (integer) - Общее количество элементов.
- 500 Internal Server Error:
{ "success": false, "message": "Проблема с получением списка пользователей" }
POST /send-bulk-notification-filter-customers
Описание: Отправка массового уведомления по фильтру пользователей
Теги: Уведомления
Предварительная проверка: Отсутствует
Тело запроса (body):
{
"title": "Заголовок уведомления",
"body": "Текст уведомления"
}
title: (string, required) - Заголовок уведомления.body: (string, required) - Текст уведомления.
Параметры запроса (query):
- Все параметры передаются в виде query параметров и будут прокинуты в репозиторий для фильтрации пользователей.
Ответ:
- 200 OK:
{ "success": true, "message": "Сообщения были отправлены", "result": "Messages sent to RabbitMQ" } - 500 Internal Server Error:
{ "success": false, "message": "Проблема с получением списка пользователей" }
Примечания:
- Все запросы требуют авторизации с ролью
userилиadmin. - Все запросы возвращают
500 Internal Server Errorв случае внутренней ошибки на сервере.