Модуль подписок¶
В этой статье:
Создание подписки¶
Endpoint: POST v1/subscriptions/create
Предназначен для создания подписок и поддерживает множественный выбор объектов подписки и триггеров.
Пример запроса:
{
"subscription": {
"id": null, // ID подписки (при создании автоматически заполняется с BE)
"name": "testMulti", // Название подписки
"description": null, // Описание подписки (на данный момент такое поле отсутствует на UI)
"type": "asset", // Тип подписки (asset/assetType)
"triggers": [ // Список триггеров
"triggerScoresAndComments",
"updateAsset"
],
"subjects": [ // Объекты подписки (в случае подписки на тип актива поле subjectId будет null)
{
"namespace": "asset",
"typeName": "asset1",
"subjectId": "472915d1-4fe3-11ef-b96a-051ca4594fa5"
},
{
"namespace": "asset",
"typeName": "sub1",
"subjectId": "4d3a6e17-4fe3-11ef-b96a-051ca4594fa5"
}
],
"channels": [ // Каналы поставки уведомлений
"panel"
],
"active": true, // Статус подписки
"content": [], // Контент, который включает в себя дополнительные условия подписки (при множественном выборе объектов/триггеров будет отсутствовать)
"username": "admin", // Логин пользователя, которому принадлежит подписка
"createDate": "2024-08-01T14:27:06.372Z", // Дата создания
"updateDate": "2024-08-01T14:27:06.372Z" // дата обновления
}
}
Пример ответа:
{
"success": true
}
Получение подписок¶
Endpoint: GET v1/subscriptions/list
Предназначен для получения подписок без учета фильтрации и сортировки. Принимает в качестве параметров limit
и offset
.
Endpoint: POST v1/subscriptions/list
Предназначен для получения подписок с учетом фильтрации и сортировки.
Пример запроса:
{
"name": "testMulti", // Имя подписки
"username": "admin", // Имя пользователя
"type": "asset", // Тип подписки
"trigger": "updateAsset", // Триггер подписки
"subject": { // Объект подписки
"namespace": "asset",
"typeName": "asset1",
"subjectId": "472915d1-4fe3-11ef-b96a-051ca4594fa5"
},
"includeInactive": true, // Флаг на включение в результат поиска неактивных подписок
"limit": 10, // Параметры для пагинации
"offset": 0, // Параметры для пагинации
"countOnly": true, // Флаг на возвращение только числа подписок
"sortFields": [ // Поля сортировки
{
"name": "name",
"order": "DESC"
}
]
}
Оба поинта имеют одинаковый формат ответа.
Пример ответа:
{
"totalCount": 1,
"subscriptions": [
{
"id": 9,
"name": "testMulti",
"description": null,
"type": "asset",
"triggers": [
"triggerScoresAndComments",
"updateAsset"
],
"subjects": [
{
"namespace": "asset",
"typeName": "asset1",
"subjectId": "472915d1-4fe3-11ef-b96a-051ca4594fa5"
},
{
"namespace": "asset",
"typeName": "sub1",
"subjectId": "4d3a6e17-4fe3-11ef-b96a-051ca4594fa5"
}
],
"channels": [
"panel"
],
"content": [],
"username": null,
"active": true,
"createDate": "2024-08-02T09:50:34.020630Z",
"updateDate": "2024-08-02T09:50:34.020630Z"
}
]
}
Обновление подписки¶
Endpoint: PUT v1/subscriptions/update/{id}
Предназначен для обновления подписки.
Пример запроса:
{
"subscription": {
"id": 9,
"name": "changedName", // Имя подписки (редактируемый параметр)
"description": null,
"type": "asset",
"triggers": [
"triggerScoresAndComments",
"updateAsset"
],
"subjects": [
{
"namespace": "asset",
"typeName": "asset1",
"subjectId": "472915d1-4fe3-11ef-b96a-051ca4594fa5"
},
{
"namespace": "asset",
"typeName": "sub1",
"subjectId": "4d3a6e17-4fe3-11ef-b96a-051ca4594fa5"
}
],
"channels": [ // Каналы поставки (редактируемый параметр)
"email"
],
"content": [], // Конфигурация триггеров (редактируемый параметр)
"username": "admin",
"active": true, // Активная подписка или нет (редактируемый параметр)
"createDate": "2024-08-02T09:51:19.862Z",
"updateDate": "2024-08-02T09:51:19.862Z"
}
}
Пример ответа:
{
"success": true
}
В случае возникновения ошибки ответ от любого из приведенных поинтов будет одинаковый.
Ответ (в случае возникновения ошибки):
{
"details": {
"info": [
{
"domain": "string",
"source": "string",
"content": "string"
}
],
"warning": [
{
"domain": "string",
"source": "string",
"content": "string"
}
],
"error": [
{
"domain": "string",
"source": "string",
"code": "string",
"severity": "string",
"externalMessage": "string",
"internalMessage": "string",
"details": "string",
"params": [
{
"message": "string",
"internalMessage": "string",
"nested": [
"string"
]
}
]
}
]
},
"errorMessage": "string"
}