Правовые документы

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. 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 Назначить исполнителя

11. 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 История по конкретной заявке

12. Email (/email)

src/email/controller/email.controller.ts

Метод Путь Описание
POST /help/email/read Прочитать непрочитанные письма IMAP-ящика и создать на их основе заявки

13. 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 г.