API эндпоинты — help-backend
Документация по REST API сервиса технической поддержки.
Общая информация
- Базовый префикс:
/help(задаётся черезapp.setGlobalPrefix('help')вsrc/main.ts) - Swagger UI:
/api - Полный путь к любому эндпоинту:
http://<host>:<HELP_BACKEND_PORT>/help/<route> - CORS: включён для всех источников
Заголовки аутентификации
Идентификация пользователя выполняется через HTTP-заголовки (не через JWT). Константы определены в src/request/request.constant.ts:
| Заголовок | Назначение |
|---|---|
X-TS-USER |
ID текущего пользователя |
X-TS-SYSTEM |
Код системы (организации), к которой относится запрос |
Ниже у каждого эндпоинта указано, какие заголовки он использует.
1. App (/)
src/app.controller.ts
| Метод | Путь | Описание |
|---|---|---|
GET |
/help |
Hello-эндпоинт (smoke-проверка) |
2. Health (/health)
src/health/health.controller.ts
| Метод | Путь | Описание |
|---|---|---|
GET |
/help/health |
Проверка работоспособности (MongoDB + RabbitMQ через Terminus) |
3. Debug (/debug)
src/debug/debug.controller.ts
| Метод | Путь | Описание |
|---|---|---|
GET |
/help/debug/memory |
Статистика по памяти процесса и V8 heap |
GET |
/help/debug/heap-snapshot |
Снимок V8 heap (.heapsnapshot), отдаётся как файл |
4. User (/user)
src/user/controller/user.controller.ts
| Метод | Путь | Headers | Body | Описание |
|---|---|---|---|---|
POST |
/help/user |
— | CreateTechSupportUserDto |
Создать нового пользователя |
POST |
/help/user/:id/check |
— | UpdateTechSupportUserDto |
Проверить пользователя по id и обновить, если данные отличаются |
POST |
/help/user/:id |
— | UpdateTechSupportUserDto |
Обновить пользователя |
DELETE |
/help/user/:id |
— | — | Удалить пользователя |
GET |
/help/user/all |
— | — | Список всех пользователей |
GET |
/help/user/current-user |
X-TS-USER |
— | Реквизиты текущего пользователя |
GET |
/help/user/settings/:type |
X-TS-USER |
— | Получить настройки пользователя по типу |
POST |
/help/user/settings/:type |
X-TS-USER |
TechSupportUserCommandDto |
Сохранить настройки пользователя по типу |
GET |
/help/user/from-external-system/:systemCode |
— | — | Список пользователей из внешней системы |
GET |
/help/user/:id |
— | — | Получить пользователя по id |
5. System (/system)
src/system/controller/system.controller.ts
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/system |
CreateTechSupportSystemDto |
Создать систему |
POST |
/help/system/:id |
UpdateTechSupportSystemDto |
Обновить систему |
DELETE |
/help/system/:id |
— | Удалить систему |
GET |
/help/system/all |
— | Получить список всех систем |
6. Status (/status)
src/status/controller/status.controller.ts
:code — текстовый код статуса (например, OPENED).
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/status |
CreateTechSupportStatusDto |
Создать статус |
POST |
/help/status/:code |
UpdateTechSupportStatusDto |
Обновить статус |
DELETE |
/help/status/:code |
— | Удалить статус |
GET |
/help/status/all |
— | Список всех статусов |
7. Status Relation (/status-relation)
src/status-relation/controller/status-relation.controller.ts
Описывает разрешённые переходы между статусами заявок.
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/status-relation |
CreateTechSupportStatusRelationDto[] |
Массовое создание переходов |
POST |
/help/status-relation/:id |
UpdateTechSupportStatusRelationDto |
Обновить переход |
DELETE |
/help/status-relation/:id |
— | Удалить переход |
GET |
/help/status-relation/all |
— | Список всех переходов |
8. Request Type (/request-type)
src/request-type/controller/request-type.controller.ts
Категории (типы) обращений в ТП.
| Метод | Путь | Body | Описание |
|---|---|---|---|
GET |
/help/request-type |
— | Список всех типов |
GET |
/help/request-type/:id |
— | Получить тип по id |
POST |
/help/request-type |
CreateRequestTypeDto |
Создать тип |
PATCH |
/help/request-type/:id |
TechSupportRequestTypeResponseDto |
Обновить тип |
DELETE |
/help/request-type/:id |
— | Удалить тип (204) |
9. Request Priority (/request-priority)
src/request-priority/controller/request-priority.controller.ts
Приоритеты заявок.
| Метод | Путь | Body | Описание |
|---|---|---|---|
GET |
/help/request-priority |
— | Список приоритетов |
GET |
/help/request-priority/:id |
— | Получить приоритет по id |
POST |
/help/request-priority |
CreateRequestPriorityDto |
Создать приоритет |
PATCH |
/help/request-priority/:id |
UpdateRequestPriorityDto |
Обновить приоритет |
DELETE |
/help/request-priority/:id |
— | Удалить приоритет (204) |
10. Service / Task (/task)
src/task/controller/task.controller.ts
Услуга — это справочник значений, которые можно привязать к заявке через поле task.
| Метод | Путь | Body | Описание |
|---|---|---|---|
GET |
/help/task |
— | Список услуг |
GET |
/help/task/:id |
— | Получить услугу по id |
POST |
/help/task |
CreateTaskDto |
Создать услугу |
PATCH |
/help/task/:id |
UpdateTaskDto |
Обновить услугу |
DELETE |
/help/task/:id |
— | Удалить услугу (204) |
Формат услуги:
| Поле | Тип | Описание |
|---|---|---|
_id |
string |
Id услуги |
code |
string |
Код услуги |
description |
string |
Наименование / описание услуги |
system |
string |
Код системы, в рамках которой доступна услуга |
Пример услуги:
{
"_id": "682eeb7f1f2a8f6b1c123456",
"code": "CLIENT_CARD",
"description": "Работа с карточкой клиента",
"system": "CRM"
}
Связь услуги и заявки:
- При создании и редактировании заявки в поле
taskпередаётсяcodeуслуги. - Услуга выбирается в рамках системы
system. - Для одной заявки передаётся одна услуга.
- В ответе по заявке услуга возвращается полями
taskиtaskText.
11. Request (/request) — основной домен
src/request/controller/request.controller.ts
Тикеты ТП: списки, фильтры, комментарии, статусы, линии поддержки и исполнители. Большинство методов читают X-TS-USER и часть — X-TS-SYSTEM.
Списки и агрегаты
| Метод | Путь | Headers | Body | Описание |
|---|---|---|---|---|
POST |
/help/request/all |
X-TS-USER, X-TS-SYSTEM |
PaginatedParams |
Пагинированный список заявок по роли пользователя |
POST |
/help/request/fieldValues/:field |
X-TS-USER, X-TS-SYSTEM |
FiltratedParams |
Получить уникальные значения поля :field с учётом фильтров |
GET |
/help/request/history-count |
X-TS-USER, X-TS-SYSTEM |
— | Количество непрочитанных сообщений истории |
GET |
/help/request/read-all-history |
X-TS-USER, X-TS-SYSTEM |
— | Пометить всю историю пользователя прочитанной (204) |
POST |
/help/request/overdue |
X-TS-USER |
— | Запустить проверку просроченных заявок (204) |
CRUD заявки
| Метод | Путь | Headers | Body | Описание |
|---|---|---|---|---|
POST |
/help/request |
X-TS-USER, X-TS-SYSTEM |
multipart/form-data + CreateTechSupportRequestDto |
Создать заявку (с вложениями) |
POST |
/help/request/:id |
X-TS-USER |
multipart/form-data + UpdateTechSupportRequestDto |
Обновить заявку (с вложениями) |
DELETE |
/help/request/:id |
X-TS-USER |
— | Удалить заявку |
GET |
/help/request/:id |
X-TS-USER |
— | Получить заявку по id |
Комментарии
| Метод | Путь | Headers | Body | Описание |
|---|---|---|---|---|
POST |
/help/request/:id/comment |
X-TS-USER |
multipart/form-data + CreateTechSupportCommentDto |
Добавить комментарий (с вложениями) |
POST |
/help/request/:id/comment/:commentId |
X-TS-USER |
multipart/form-data + UpdateTechSupportCommentDto |
Обновить комментарий |
DELETE |
/help/request/:id/comment/:commentId |
X-TS-USER |
— | Удалить комментарий |
Статус, линия поддержки, исполнитель
| Метод | Путь | Headers | Body | Описание |
|---|---|---|---|---|
POST |
/help/request/:id/changeStatus |
X-TS-USER |
ChangeStatusTechSupportRequestDto |
Изменить статус заявки |
POST |
/help/request/:id/changeLine |
X-TS-USER |
ChangeLineTechSupportRequestDto |
Изменить линию ТП |
GET |
/help/request/:id/performer/list |
X-TS-USER, X-TS-SYSTEM |
— | Список доступных исполнителей текущей линии ТП |
POST |
/help/request/:id/performer |
X-TS-USER |
SetSupportLinePerformerTechSupportRequestDto |
Назначить исполнителя |
Входные и выходные данные по созданию/изменению заявок, статусов, комментариев и файлов
POST /help/request — создание заявки
Контент-тип: multipart/form-data
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
subject |
string |
да | Тема заявки |
text |
string |
да | Текст заявки |
additionalInfo |
Array<{ name: string; value: string }> |
нет | Дополнительные поля |
user |
object | null |
нет | Пользователь, от имени которого создаётся заявка |
requestType |
string |
да | Код типа заявки |
system |
string |
нет | Код системы; если не передан, берётся из X-TS-SYSTEM |
email |
string |
нет | Email отправителя |
requestPriority |
string |
нет | Код приоритета; если не передан, используется LOW |
task |
string |
нет | Код услуги из справочника /help/task |
files |
binary[] |
нет | Новые вложения заявки |
Перед созданием заявки код услуги рекомендуется получать через GET /help/task.
Услуга в заявке:
| Поле | Тип | Описание |
|---|---|---|
task |
string |
Код услуги (code) из /help/task |
| связь с системой | string |
Услуга должна относиться к той же системе, что и заявка (system) |
Поля объекта user:
| Поле | Тип | Описание |
|---|---|---|
externalId |
string |
Идентификатор пользователя во внешней системе |
fullName |
string |
ФИО |
companyName |
string |
Организация |
eMail |
string[] |
Email-адреса |
phoneNumber |
string[] |
Телефоны |
telegram |
string[] |
Telegram id |
position |
string |
Должность |
role |
string |
Роль |
fullThumbUrl |
string |
Ссылка на фото |
isAdmin |
boolean |
Признак администратора |
isTechnicalSupportAdmin |
boolean |
Признак администратора техподдержки |
additionalInfo |
Array<{ name: string; value: string }> |
Дополнительные данные |
systems |
string[] |
Системы пользователя |
uniqueIdentifier |
string |
Уникальный идентификатор |
isActive |
boolean |
Активность пользователя |
comment |
string |
Комментарий |
Ответ: полная созданная заявка.
Услуга в ответе:
- Заявка создаётся с привязкой к услуге, переданной в поле
task. - В ответе по заявке возвращаются поля
taskиtaskText.
Пример полей multipart/form-data:
subject=Не открывается карточка клиента
text=При переходе в карточку клиента отображается пустая страница.
requestType=INCIDENT
system=CRM
requestPriority=MEDIUM
task=CLIENT_CARD
additionalInfo=[{"name":"clientId","value":"CL-100245"},{"name":"environment","value":"prod"}]
user={"externalId":"usr-1001","fullName":"Иван Иванов","companyName":"Компания А","eMail":["user@example.com"],"phoneNumber":["+79990000000"],"uniqueIdentifier":"crm_usr_1001"}
files=<binary>
Здесь task=CLIENT_CARD означает привязку заявки к услуге с кодом CLIENT_CARD из справочника /help/task для системы CRM.
Пример ответа:
{
"id": "682c6d9f5a3e7d1c2b123456",
"createdAt": "2026-05-20T08:15:10.000Z",
"updatedAt": "2026-05-20T08:15:10.000Z",
"code": "000321",
"subject": "Не открывается карточка клиента",
"text": "При переходе в карточку клиента отображается пустая страница.",
"statusCode": "OPENED",
"statusName": "Заявка создана",
"authorId": "681111111111111111111111",
"authorFullName": "Иван Иванов",
"authorCompanyName": "Компания А",
"creatorId": null,
"creatorFullName": null,
"system": "CRM",
"systemText": "CRM",
"supportLineNum": 0,
"supportLineName": "Первая линия",
"performer": [],
"performerFullName": null,
"requestTypeCode": "INCIDENT",
"requestTypeName": "Инцидент",
"task": "CLIENT_CARD",
"taskText": "Работа с карточкой клиента",
"requestPriorityCode": "MEDIUM",
"requestPriorityName": "Средний",
"additionalInfo": [
{ "name": "clientId", "value": "CL-100245" },
{ "name": "environment", "value": "prod" }
],
"files": [
{
"id": "682c6d9f5a3e7d1c2b999001",
"fullUrl": "https://files.example.com/help/682c6d9f5a3e7d1c2b999001",
"name": "screenshot.png",
"mimeType": "image/png",
"size": 248231
}
],
"comments": [],
"nextStatuses": [
{
"code": "IN_PROGRESS",
"name": "В работе",
"text": "Взять в работу",
"isCommentNeeded": false,
"params": {}
}
],
"nextSupportLine": {
"num": 1,
"name": "Вторая линия"
},
"prevSupportLine": [],
"trackerId": "HELP-321"
}
POST /help/request/:id — изменение заявки
Контент-тип: multipart/form-data
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
type |
string |
да по DTO | Поле есть в DTO, но в текущей реализации не сохраняется |
subject |
string |
да | Новая тема |
text |
string |
да | Новый текст |
statusCode |
string |
да по DTO | Код статуса |
additionalInfo |
Array<{ name: string; value: string }> |
нет | Новые дополнительные поля |
files |
Array<{ id: string; name: string }> |
нет | Файлы заявки, которые нужно оставить после обновления |
requestPriority |
string |
нет | Новый код приоритета |
user |
object | null |
нет | Новый автор заявки |
system |
string |
нет | Новый код системы |
task |
string |
нет | Новый код услуги из справочника /help/task |
files (multipart) |
binary[] |
нет | Новые файлы, которые нужно добавить к заявке |
Перед обновлением заявки код услуги рекомендуется получать через GET /help/task.
Услуга в заявке:
| Поле | Тип | Описание |
|---|---|---|
task |
string |
Новый код услуги (code) из /help/task |
| связь с системой | string |
Услуга должна относиться к системе, переданной в поле system |
Поля объекта user совпадают с POST /help/request.
Ответ: полная обновлённая заявка.
Услуга в ответе:
- Заявка обновляется с новой привязкой к услуге, переданной в поле
task. - В ответе по заявке возвращаются поля
taskиtaskText.
Пример полей multipart/form-data:
subject=Не открывается карточка клиента в CRM
text=Проблема воспроизводится у нескольких сотрудников.
statusCode=OPENED
system=CRM
requestPriority=HIGH
task=CLIENT_CARD
additionalInfo=[{"name":"clientId","value":"CL-100245"},{"name":"environment","value":"prod"},{"name":"browser","value":"Chrome"}]
files=[{"id":"682c6d9f5a3e7d1c2b999001","name":"screenshot.png"}]
files=<binary>
Здесь task=CLIENT_CARD означает, что после обновления заявка должна быть связана с услугой CLIENT_CARD в системе CRM.
Пример ответа:
{
"id": "682c6d9f5a3e7d1c2b123456",
"createdAt": "2026-05-20T08:15:10.000Z",
"updatedAt": "2026-05-20T08:32:44.000Z",
"code": "000321",
"subject": "Не открывается карточка клиента в CRM",
"text": "Проблема воспроизводится у нескольких сотрудников.",
"statusCode": "OPENED",
"statusName": "Заявка создана",
"system": "CRM",
"systemText": "CRM",
"task": "CLIENT_CARD",
"taskText": "Работа с карточкой клиента",
"requestPriorityCode": "HIGH",
"requestPriorityName": "Высокий",
"additionalInfo": [
{ "name": "clientId", "value": "CL-100245" },
{ "name": "environment", "value": "prod" },
{ "name": "browser", "value": "Chrome" }
],
"files": [
{
"id": "682c6d9f5a3e7d1c2b999001",
"fullUrl": "https://files.example.com/help/682c6d9f5a3e7d1c2b999001",
"name": "screenshot.png",
"mimeType": "image/png",
"size": 248231
},
{
"id": "682c71a15a3e7d1c2b999002",
"fullUrl": "https://files.example.com/help/682c71a15a3e7d1c2b999002",
"name": "console-log.txt",
"mimeType": "text/plain",
"size": 1462
}
]
}
POST /help/request/:id/changeStatus — изменение статуса заявки
Контент-тип: application/json
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
statusCode |
string |
да | Код целевого статуса |
commentText |
string |
условно | Комментарий к смене статуса |
Ответ: полная заявка после смены статуса.
Пример запроса:
{
"statusCode": "IN_PROGRESS",
"commentText": "Заявка взята в работу, выполняем диагностику."
}
Пример ответа:
{
"id": "682c6d9f5a3e7d1c2b123456",
"code": "000321",
"statusCode": "IN_PROGRESS",
"statusName": "В работе",
"updatedAt": "2026-05-20T08:40:12.000Z",
"comments": [
{
"id": "682c73925a3e7d1c2b777001",
"createdAt": "2026-05-20T08:40:12.000Z",
"updatedAt": "2026-05-20T08:40:12.000Z",
"text": "Заявка взята в работу, выполняем диагностику.",
"isAdminComment": false,
"author": {
"id": "681222222222222222222222",
"externalId": "support-01",
"fullName": "Специалист поддержки"
},
"files": []
}
]
}
POST /help/request/:id/comment — добавление комментария
Контент-тип: multipart/form-data
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
text |
string |
да | Текст комментария |
isAdminComment |
boolean |
да | Признак комментария только для администраторов |
files |
binary[] |
нет | Новые вложения комментария |
Ответ: полная заявка с добавленным комментарием.
Пример полей multipart/form-data:
text=Нужны дополнительные данные: укажите точное время ошибки и приложите новый скриншот.
isAdminComment=false
files=<binary>
Пример ответа:
{
"id": "682c6d9f5a3e7d1c2b123456",
"code": "000321",
"updatedAt": "2026-05-20T08:48:03.000Z",
"comments": [
{
"id": "682c75435a3e7d1c2b777002",
"createdAt": "2026-05-20T08:48:03.000Z",
"updatedAt": "2026-05-20T08:48:03.000Z",
"text": "Нужны дополнительные данные: укажите точное время ошибки и приложите новый скриншот.",
"isAdminComment": false,
"author": {
"id": "681222222222222222222222",
"externalId": "support-01",
"fullName": "Специалист поддержки"
},
"files": [
{
"id": "682c75435a3e7d1c2b999003",
"fullUrl": "https://files.example.com/help/682c75435a3e7d1c2b999003",
"name": "request-details.pdf",
"mimeType": "application/pdf",
"size": 87321
}
]
}
]
}
Добавление файлов
Файлы прикрепляются только в этих ручках:
| Где добавляются файлы | Как передаются | Что возвращается |
|---|---|---|
POST /help/request |
multipart-вложения вместе с созданием заявки | Полная заявка с заполненным files[] |
POST /help/request/:id |
multipart-вложения вместе с обновлением заявки | Полная заявка с обновлённым files[] |
POST /help/request/:id/comment |
multipart-вложения вместе с комментарием | Полная заявка с новым элементом в comments[].files[] |
Формат файла в ответе:
| Поле | Тип | Описание |
|---|---|---|
id |
string |
Id файла |
fullUrl |
string |
Полный URL файла |
name |
string |
Имя файла |
mimeType |
string |
MIME-тип |
size |
number |
Размер в байтах |
Пример объекта файла:
{
"id": "682c75435a3e7d1c2b999003",
"fullUrl": "https://files.example.com/help/682c75435a3e7d1c2b999003",
"name": "request-details.pdf",
"mimeType": "application/pdf",
"size": 87321
}
Формат комментария в ответе:
| Поле | Тип | Описание |
|---|---|---|
id |
string |
Id комментария |
createdAt |
Date |
Дата создания |
updatedAt |
Date |
Дата обновления |
text |
string |
Текст комментария |
isAdminComment |
boolean |
Признак админского комментария |
author |
object |
Автор комментария |
files |
Array<{ id: string; fullUrl: string; name: string; mimeType: string; size: number }> |
Файлы комментария |
Ключевые поля заявки в ответе:
| Поле | Тип | Описание |
|---|---|---|
id |
string |
Id заявки |
createdAt |
Date |
Дата создания |
updatedAt |
Date |
Дата обновления |
code |
string |
Номер заявки |
subject |
string |
Тема |
text |
string |
Текст |
statusCode |
string |
Код статуса |
statusName |
string |
Наименование статуса |
authorId |
string |
Id автора |
authorFullName |
string |
ФИО автора |
authorCompanyName |
string |
Организация автора |
creatorId |
string | null |
Id создателя |
creatorFullName |
string | null |
ФИО создателя |
system |
string |
Код системы |
systemText |
string |
Наименование системы |
supportLineNum |
number |
Номер активной линии поддержки |
supportLineName |
string |
Название активной линии поддержки |
performer |
Array<{ id: string; fullName: string }> |
Исполнители по линиям |
performerFullName |
string |
Исполнитель активной линии |
requestTypeCode |
string | null |
Код типа заявки |
requestTypeName |
string | null |
Название типа заявки |
requestPriorityCode |
string | null |
Код приоритета |
requestPriorityName |
string | null |
Название приоритета |
task |
string | null |
Код услуги |
taskText |
string | null |
Наименование услуги |
additionalInfo |
Array<{ name: string; value: string }> |
Дополнительные поля |
files |
Array<{ id: string; fullUrl: string; name: string; mimeType: string; size: number }> |
Файлы заявки |
comments |
Array<object> |
Комментарии |
nextStatuses |
Array<object> |
Доступные следующие статусы |
nextSupportLine |
object |
Следующая линия поддержки |
prevSupportLine |
object[] |
Предыдущие линии поддержки |
trackerId |
string |
Id заявки во внешнем трекере |
12. History (/history)
src/history/controller/history.controller.ts
Журнал изменений заявок.
| Метод | Путь | Headers | Описание |
|---|---|---|---|
GET |
/help/history/request/all |
X-TS-USER |
Вся история по всем доступным заявкам |
GET |
/help/history/request/:id |
X-TS-USER |
История по конкретной заявке |
13. Email (/email)
src/email/controller/email.controller.ts
| Метод | Путь | Описание |
|---|---|---|
POST |
/help/email/read |
Прочитать непрочитанные письма IMAP-ящика и создать на их основе заявки |
14. Email Rule (/email-rule)
src/email-rules/controller/email-rule.controller.ts
Правила маршрутизации входящих писем. Отдельные ресурсы — для самих правил (/), их видов (/kind) и типов (/type).
Виды правил (rule kinds)
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/email-rule/kind |
CreateTechSupportEmailRuleKindDto |
Создать вид правила |
GET |
/help/email-rule/kind |
— | Список видов |
GET |
/help/email-rule/kind/:id |
— | Получить вид по id |
PUT |
/help/email-rule/kind/:id |
UpdateTechSupportEmailRuleKindDto |
Обновить вид |
DELETE |
/help/email-rule/kind/:id |
— | Удалить вид |
Типы правил (rule types)
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/email-rule/type |
CreateTechSupportEmailRuleTypeDto |
Создать тип правила |
GET |
/help/email-rule/type |
— | Список типов |
GET |
/help/email-rule/type/:id |
— | Получить тип по id |
PUT |
/help/email-rule/type/:id |
UpdateTechSupportEmailRuleTypeDto |
Обновить тип |
DELETE |
/help/email-rule/type/:id |
— | Удалить тип |
Правила
| Метод | Путь | Body | Описание |
|---|---|---|---|
POST |
/help/email-rule |
CreateTechSupportEmailRuleDto |
Создать правило |
GET |
/help/email-rule |
— | Список правил |
GET |
/help/email-rule/:id |
— | Получить правило по id |
PUT |
/help/email-rule/:id |
UpdateTechSupportEmailRuleDto |
Обновить правило |
DELETE |
/help/email-rule/:id |
— | Удалить правило |
Загрузка файлов
Эндпоинты заявок и комментариев, которые принимают вложения, используют multipart/form-data (NestJS AnyFilesInterceptor). Имена файлов проходят через MulterFilenamePipe из src/utils/multer-filename.pipe.ts. В тело запроса можно передавать обычные DTO-поля параллельно с файлами.
Источник
Документация автоматически собрана из контроллеров проекта (src/**/*.controller.ts) на основе декораторов @Controller, @Get/@Post/@Patch/@Put/@Delete, @ApiOperation и используемых заголовков. Актуальная интерактивная версия с DTO-схемами доступна в Swagger UI по адресу /api.
25 мая 2026 г.