Работа с рассылками
Типы контактов contactType
| Тип контакта | id |
|---|---|
| Почта | 1 |
| Телеграм | 4 |
| Пуш уведомление | 5 |
Типы инлайн кнопок
| Тип кнопки | Константа |
|---|---|
| Регистрация на запуск | create_registration |
| Призыв выбрать город | choose_city |
Пример создания
{
"inlineButton": {
"URL": "create_registration",
"text": "Занять место"
}
}
Пример как выглядит
Для create_registration

Для choose_city

Создание рассылки
Ручка#
POST /broadcast/v1/create_broadcast
Полный адрес в сети#
| Среда | URL |
|---|---|
| 🧪 Dev | http://gateway.devterra.ru/admin/broadcast/v1/create_broadcast |
| 🚀 Prod | http://mobile-api.terraprod.ru/admin/broadcast/v1/create_broadcast |
Тело запроса#
| Поле | Тип | Описание | Обязательное | Пример |
|---|---|---|---|---|
| title | string | Заголовок рассылки | ✅ | "Рассылка новостей" |
| message | string | Текст рассылки | ✅ | "Уважаемые пользователи, у нас новости!" |
| contactType | int32 | Тип контакта (целое число > 0) | ✅ | 1 |
| sendTime | string | Время отправки (ISO8601) | ✅ | "2024-09-13T18:04:05+03:00" |
| needToSend | bool | Нужно ли отправлять рассылку | ✅ | true |
| roles | []int32 | Список ролей (от 1 до 15) | ❌ | [1, 3, 5] |
| usersUUID | []string | Список UUID пользователей для рассылки | ❌ | ["uuid-1234", "uuid-5678"] |
| imageURL | string | URL картинки-видео (mp4) | ❌ | "https://example.com/image.png" |
| tgMembers | bool | Включать ли участников из Telegram | ❌ | false |
| target | object (map) | Дополнительные параметры фильтрации | ❌ | {"city": "1", "utm_source": "ads"} |
| cities | []int32 | Список ID городов ( > 0) | ❌ | [10, 20] |
| mentorLevels | []int32 | Список уровней менторов (от 1 до 4 включительно) | ❌ | [1, 2, 4] |
| inlineButton | object | Кнопка под сообщением | ❌ | {"text": "Перейти", "url": "https://..."} |
cities=[-1] отправит рассылку всем пользователям у которых отсутствует город
target={"city": "-1"} отправит рассылку всем подписчикам у которых отсутствует город
Пример JSON запроса#
{
"cities": [
0
],
"contactType": 0,
"imageURL": "string",
"inlineButton": {
"text": "string",
"url": "string"
},
"mentorLevels": [
0
],
"message": "string",
"needToSend": true,
"roles": [
0
],
"sendTime": "2024-09-13T18:04:05+03:00",
"target": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tgMembers": true,
"title": "string",
"usersUUID": [
"string"
]
}
Пример JSON ответа#
{
"cities": [
0
],
"contactType": 0,
"createdAt": "2024-09-13T18:04:05+03:00",
"deletedAt": "2024-09-13T18:04:05+03:00",
"id": 0,
"imageURL": "string",
"inlineButton": {
"text": "string",
"url": "string"
},
"isSend": true,
"mentorLevels": [
0
],
"message": "string",
"needToSend": true,
"roles": [
0
],
"sendTime": "02.01.2006 15:04:05",
"target": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tgMembers": true,
"title": "string",
"updatedAt": "2024-09-13T18:04:05+03:00",
"userUUID": "string",
"usersUUID": [
"string"
]
}
Удаление рассылки
Ручка#
DELETE /broadcast/v1/delete_broadcast
Полный адрес в сети#
| Среда | URL |
|---|---|
| 🧪 Dev | http://gateway.devterra.ru/admin/broadcast/v1/delete_broadcast |
| 🚀 Prod | http://mobile-api.terraprod.ru/admin/broadcast/v1/delete_broadcast |
Тело запроса#
| Поле | Тип | Описание | Обязательное | Пример |
|---|---|---|---|---|
| id | int32 | Идентификатор | ✅ | 123 |
Пример JSON запроса#
{
"id": 0
}
Пример JSON ответа#
200 OK "string"
Просмотр списка рассылок
POST /broadcast/v1/fetch_broadcast
Полный адрес в сети#
| Среда | URL |
|---|---|
| 🧪 Dev | http://gateway.devterra.ru/admin/broadcast/v1/fetch_broadcast |
| 🚀 Prod | http://mobile-api.terraprod.ru/admin/broadcast/v1/fetch_broadcast |
Тело запроса#
| Поле | Тип | Описание | Обязательное | Пример |
|---|---|---|---|---|
| id | int32 | Идентификатор рассылки | ✅ | 123 |
| title | string | Заголовок рассылки | ❌ | "Обновлённый заголовок рассылки" |
| message | string | Текст сообщения | ❌ | "Текст обновлённого сообщения" |
| contactType | int32 | Тип контакта (целое число > 0) | ❌ | 1 |
| sendTime | string | Время отправки (ISO8601) | ❌ | "2024-09-13T18:04:05+03:00" |
| needToSend | bool | Флаг необходимости отправки | ❌ | true |
| roles | []int32 | Список ролей (1 до 15) | ❌ | [1, 3, 7] |
| usersUUID | []string | Список UUID пользователей | ❌ | ["uuid-1234", "uuid-5678"] |
| imageURL | string | URL картинки-видео (mp4) | ❌ | "https://example.com/image.png" |
| tgMembers | bool | Включать ли участников из Telegram | ❌ | false |
| target | object (map) | Дополнительные параметры фильтрации | ❌ | {"city": "1", "utm_source": "ads"} |
| cities | []int32 | Список ID городов ( > 0) | ❌ | [10, 20] |
| mentorLevels | []int32 | Уровни менторов (от 1 до 4 включительно) | ❌ | [1, 2, 4] |
Пример JSON запроса#
{
"filters": {
"cities": [
0
],
"createdAt": "2024-09-13T18:04:05+03:00",
"createdTo": "2024-09-13T18:04:05+03:00",
"isSend": true,
"mentorLevels": [
0
],
"needToSend": true,
"orderByCreatedAt": true,
"roles": [
0
],
"sendTimeAt": "2024-09-13T18:04:05+03:00",
"sendTimeTo": "2024-09-13T18:04:05+03:00",
"tgMembers": true,
"userUUID": "string"
},
"pagination": {
"limit": 0,
"page": 0
}
}
Пример JSON ответа#
{
"pagination": {
"currentPage": 0,
"itemsPerPage": 0,
"totalItems": 0,
"totalPages": 0
},
"result": [
{
"cities": [
0
],
"contactType": 0,
"createdAt": "2024-09-13T18:04:05+03:00",
"deletedAt": "2024-09-13T18:04:05+03:00",
"id": 0,
"imageURL": "string",
"inlineButton": {
"text": "string",
"url": "string"
},
"isSend": true,
"mentorLevels": [
0
],
"message": "string",
"needToSend": true,
"roles": [
0
],
"sendTime": "02.01.2006 15:04:05",
"target": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tgMembers": true,
"title": "string",
"updatedAt": "2024-09-13T18:04:05+03:00",
"userUUID": "string",
"usersUUID": [
"string"
]
}
]
}
Обновление рассылки
PATCH /broadcast/v1/update_broadcast
Полный адрес в сети#
| Среда | URL |
|---|---|
| 🧪 Dev | http://gateway.devterra.ru/admin/broadcast/v1/update_broadcast |
| 🚀 Prod | http://mobile-api.terraprod.ru/admin/broadcast/v1/update_broadcast |
Тело запроса#
| Поле | Тип | Описание | Обязательное | Пример |
|---|---|---|---|---|
| id | int32 | Идентификатор рассылки | ✅ | 123 |
| title | string | Заголовок рассылки | ❌ | "Новая рассылка" |
| message | string | Текст сообщения | ❌ | "Текст рассылки" |
| contactType | int32 | Тип контакта (целое число > 0) | ❌ | 1 |
| sendTime | string | Время отправки (ISO8601) | ❌ | "2024-09-13T18:04:05+03:00" |
| needToSend | bool | Флаг необходимости отправки | ❌ | true |
| roles | int32 | Роли (от 1 до 15) | ❌ | [1, 3, 7] |
| usersUUID | []string | UUID пользователей | ❌ | ["uuid-1234", "uuid-5678"] |
| imageURL | string | URL картинки-видео (mp4) | ❌ | "https://example.com/image.png" |
| tgMembers | bool | Включать ли участников из Telegram | ❌ | false |
| target | map[string]string | Дополнительные параметры фильтрации | ❌ | {"city": "1", "utm_source": "ads"} |
| cities | []int32 | Список ID городов ( > 0) | ❌ | [10, 20] |
| mentorLevels | []int32 | Уровни менторов (от 1 до 4 включительно) | ❌ | [1, 3] |
| inlineButton | object | Кнопка под сообщением | ❌ | {"text": "Перейти", "url": "https://..."} |
Пример JSON запроса#
{
"cities": [
0
],
"contactType": 0,
"id": 0,
"imageURL": "string",
"inlineButton": {
"text": "string",
"url": "string"
},
"mentorLevels": [
0
],
"message": "string",
"needToSend": true,
"roles": [
0
],
"sendTime": "2024-09-13T18:04:05+03:00",
"target": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"tgMembers": true,
"title": "string",
"usersUUID": [
"string"
]
}
Пример JSON ответа#
Пример JSON ответа#
200 OK "string"