Backend API (stack-golden)
api.besocial.tech/golden/api-docs/ · src/main/api/ · src/shared/utils/urls.ts
REST-частина яку electron реально викликає у бекенді stack-golden. Не плутати з повним API golden — більшість його груп (/admin, /lady, /operator, /agency, /supervisor, /dashboard, /statistics/v2, тощо) — це адмінська/менеджмент-зона і operator-клієнт їх не споживає.
Swagger UI
Ціль: один auto-Swagger /golden/api-docs/v2 — генерується з routing-controllers декораторів, охоплює всі мігровані контролери.
Поки тривalla міграція, паралельно живуть тимчасові ручні YAML (заплановано видалити після того як усі групи перейдуть на routing-controllers):
| UI | URL | Тип | Статус |
|---|---|---|---|
| v2 (auto) | /golden/api-docs/v2 | auto з routing-controllers | ціль — тут має бути все |
| Main | /golden/api-docs/ | ручний YAML, корінь | тимчасово, видаляємо |
| Operator API | /golden/api-docs/operator-api | ручний YAML | тимчасово, видаляємо |
| Old API | /golden/api-docs/old-api | ручний YAML | тимчасово, видаляємо |
| New API | /golden/api-docs/new-api | ручний YAML | тимчасово, видаляємо |
Деякі ендпоінти можуть бути одночасно і у v2, і в ручних YAML — нормально, це частина переходу. Дивись на v2 як на джерело правди для мігрованих контролерів.
Що electron викликає
/golden/electron-api/* — основна група
Мігрована на routing-controllers. Корінь: Electron API в v2.
| Підгрупа | Endpoints | Призначення |
|---|---|---|
| init/data | getOperatorLadies, getFavorites, getActualAgencyStore, getMenStore | Початкове наповнення стору оператора |
| tasks | task/create, task/updateById, task/deleteById, task/deleteMany, getTasks, getStatistics, getStatisticsForTasks | CRUD тасків + статистика |
| chat sender | sender-chat/getMessages, sender-chat/getHistory, sender-chat/getAll, sender-chat/updateState, sender-chat/group, sender-chat/reorder, sender-chat/addToWhiteList, sender-chat/deleteFromWhiteList | Інвайти/стан чат-сендера |
| mail sender | sender-mail/getMessages, sender-mail/getHistory, sender-mail/getAll, sender-mail/updateState, sender-mail/getBlackLists, sender-mail/getBlockList, sender-mail/setBlockList | Інвайти/стан mail-сендера |
| common | senders/getState, checkLadiesOnline, saveNewMen, updateSenderError | Спільні sender-операції |
| system | ping, getTime, syncData, saveLog, sendLogFile, sendErrorAlert, updates/check, updates/download | Health, sync, логи, оновлення (бінарний download) |
/golden/extension/* — invites + whitelist
Legacy bindRoutes (НЕ в v2). Вірогідно описано у Main Swagger або Old API.
Endpoints що споживає electron: getWhiteList, createChatMessage, editChatMessage, createMailMessage, editMailMessage.
/golden/mailExtension/* — NAF/FANM blacklists
Legacy bindRoutes (НЕ в v2).
Endpoints: getNAFBlacklist, getFANMBlacklist, addToNAFBlacklist, addToFANMBlacklist, deleteFromNAFBlacklist, deleteFromFANMBlacklist.
/golden/favorites/*
Legacy bindRoutes (НЕ в v2). Endpoint: updateFavoritById.
/golden/api/* — Golden Key
Legacy bindRoutes (НЕ в v2). Endpoints: getGoldenKey, refreshGoldenKey — отримання/оновлення ключа для викликів у goldenbride.net.
Як робити deeplink на конкретний endpoint
Swagger UI підтримує URL-hash deeplinks. Загальна форма:
<swagger-root>#/<TagName>/<operationId>
Приклади:
- На розділ-тег: Electron API (v2)
- На конкретний endpoint у v2: getOperatorLadies (v2)
- На endpoint у ручному UI: OperatorApi/get_connect
Точну форму operationId найпростіше скопіювати з URL-bar браузера після кліку на endpoint у UI.
Конвенція відповідей
Усі ендпоінти повертають HTTP 200 з тілом одного з форматів:
// success
{ "success": true, "data": <payload> }
// error
{ "success": false, "data": null, "message": "...", "statusCode": <code>, "context": "..." }Виняток: MiddlevareGuard (без потрібної ролі — HTTP 400 з {success:false, data:{message:'Not allow role'}}; без токена — HTTP 401 з порожнім body).
Відмінний від /golden шлях — окремі мікросервіси (не покриваються цим документом):
/notes/*,/ai-notes/translate— нотатки/email-messages/*,/lady-emails/*,/email-media/*— email/login— auth у іншому сервісі
Зв’язки
- Клієнтський шар у electron:
src/main/api/(stack.service,api-task.service,api-chat-sender.service,api-mail-sender.service,api-sender.service,api-email.service,official-api.service) - URL-константи:
src/shared/utils/urls.ts(об’єктBeSocialRoutes) - Спільні типи відповідей:
src/shared/interfaces/*api*.interface.ts