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}"
}
Таблиця 1. Коди помилок
Код Опис

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"
  }
]
Таблиця 2. Коди відповіді
Код Опис

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

Параметр запиту

Ідентифікатор повідомлення

Таблиця 3. Коди відповіді
Код Опис

200

OK

400

Некоректно сформований запит

401

Помилка автентифікації (відсутній токен доступу)

403

Заборонений доступ (при спробі оновити чуже повідомлення)

500

Серверна помилка обробки запиту