API управління повідомленнями
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. | 
1. API управління шаблонами повідомлень
1.1. Створення або внесення змін до шаблону для каналу зв’язку за назвою
| Призначенням API-роута є службове використання Пайплайном публікації регламенту для наповнення даними сховища шаблонів. Роут не доступний для зовнішнього доступу через Kong. | 
PUT /api/notifications/templates/{channel}:{name}
| Параметр | Тип | Частина запиту | Опис | 
|---|---|---|---|
| channel | Текстовий | Параметр запиту | Назва каналу [inbox, email, diia] | 
| name | Текстовий | Параметр запиту | Унікальна назва шаблону в рамках каналу | 
{
  "title": "{title}",
  "content": "{content}",
  "attributes": [
    {
      "name": "actionType",
      "value": "message"
    },
    {
      "name": "templateType",
      "value": "attention"
    },
    {
      "name": "shortText",
      "value": "{shortText}"
    }
  ]
}{
  "name": "{template_name}",
  "channel": "{channel}",
  "title": "{title}",
  "content": "{content}",
  "checksum": "{sha256-hash}",
  "attributes": [
    {
      "name": "actionType",
      "value": "message"
    },
    {
      "name": "templateType",
      "value": "attention"
    },
    {
      "name": "shortText",
      "value": "{shortText}"
    }
  ],
  "createdAt": "{timestamp}",
  "updatedAt": "{timestamp}",
  "externalTemplateId": "{external-id}",
  "externallyPublishedAt": "{timestamp}"
}| Код | Опис | 
|---|---|
| 200 | OK з поверненням результату даних зміненого шаблону | 
| 201 | Created з поверненням результату даних шаблону | 
| 400 | Некоректно сформований запит | 
| 401 | Помилка автентифікації (відсутній токен доступу) | 
| 500 | Серверна помилка обробки запиту | 
2. API доступу до inbox повідомлень користувача
| Отримання доступу до API можливе лише в рамках виконання запиту автентифікованого користувача в системі | 
2.1. Отримання переліку in-app повідомлень у Кабінеті Користувача
| Данний API-роут є публічним та має бути опублікованим для зовнішнього доступу через окремий Kong Route для Кабінету Громадянина. | 
GET /api/notifications/inbox
| Параметр | Тип | Частина запиту | Опис | 
|---|---|---|---|
| X-Access-Token | JWT | HTTP заголовок | Токен доступу користувача | 
| limit | int | Параметр запиту | Кількість повідомлень для одноразового отримання (для пагінації) | 
| offset | int | Параметр запиту | Відступ від першого повідомлення (для пагінації) | 
| Ідентифікатор користувача для фільтрації повідомлень отримується з токену доступу (поле RECIPIENT_ID). Отримані записи мають бути впорядковані у зворотньому напрямку за параметром created_at (created_at DESC) | 
[
  {
    "id": "id1",
    "subject": "SUBJECT",
    "message": "Some content",
    "isAcknowledged": true,
    "createdAt": "2022-07-29 11:08:16"
  },
  {
    "id": "id2",
    "subject": "SUBJECT2",
    "message": "Some different content",
    "isAcknowledged": false,
    "createdAt": "2022-07-27 16:04:17"
  }
]| Код | Опис | 
|---|---|
| 200 | OK | 
| 400 | Некоректно сформований запит | 
| 401 | Помилка автентифікації (відсутній токен доступу) | 
| 500 | Серверна помилка обробки запиту | 
2.2. Підтвердження перегляду in-app повідомлення у Кабінеті Користувача
| Данний API-роут є публічним та має бути опублікованим для зовнішнього доступу через окремий Kong Route для Кабінету Громадянина. | 
POST /api/notifications/inbox/{id}/ack
| Параметр | Тип | Частина запиту | Опис | 
|---|---|---|---|
| X-Access-Token | JWT | HTTP заголовок | Токен доступу користувача | 
| id | Text | Параметр запиту | Ідентифікатор повідомлення | 
| Код | Опис | 
|---|---|
| 200 | OK | 
| 400 | Некоректно сформований запит | 
| 401 | Помилка автентифікації (відсутній токен доступу) | 
| 403 | Заборонений доступ (при спробі оновити чуже повідомлення) | 
| 500 | Серверна помилка обробки запиту |