Project Admin API
Сервіс, який має бути реалізований у кожному проєкті. Виконує запити до партнерського API від імені ProjectAdmin.
Задача
Для кожної операції сервіс викликає типізований метод відповідного Project API client. Сирі URL, command і partner body не виходять за межі API client.
Проєктний сервіс project-* не перетворює partner response у canonical ProjectTU. Він повертає типізований контракт проєкту, а canonical-нормалізацію виконує adapter у project-application-api.
Реалізований internal API Golden
project-golden не має публічного frontend API. У внутрішній Docker network доступні лише операції, які вже використовує project-application-api:
| № | Операція | Endpoint |
|---|---|---|
| 1 | Перевірити credentials адмін панелі | POST /internal/admins/validate-credentials |
| 2 | Отримати TU всіх активних canonical адмін панелей директора | POST /internal/admins/tus |
| 3 | Змінити partner password TU | PATCH /internal/admins/tus/password |
project-golden читає credentials із project_admins, розшифровує secret лише перед partner request і не повертає його назовні.
Важливі запити
Це не повний список partner API. Тут фіксуємо лише запити, потрібні поточним або запланованим логікам Project Platform.
Таблиця нижче описує відомі partner/legacy можливості, а не готовність нових проєктних сервісів project-*. ✅ є та використовується у чинній системі · 🟡 API є, але ще не використовується · ❓ не підтверджено · — не знайдено
| № | Можливість | Golden | Prime | Chathouse | Udate |
|---|---|---|---|---|---|
| 1 | Перевірка credentials адмін панелі | ✅ | ✅ | ✅ | ✅ |
| 2 | Список TU | ✅ | ✅ | ✅ | ✅ |
| 3 | Профіль TU | ✅ | ✅ | ✅ | ✅ |
| 4 | Зміна пароля TU | ✅ | ✅ | ✅ | — |
| 5 | Статистика | ✅ | ✅ | ✅ | ✅ |
| 6 | Online TU через admin API | ✅ | ✅ | ✅ | ✅ |
| 7 | Коди доступу / створення TU | — | ✅ | ✅ | — |
| 8 | Реальні подарунки для TU | 🟡 | ✅ | — | — |
| 9 | Оператори партнера | — | — | — | ✅ |
Нюанси
1. Перевірка credentials адмін панелі
- Для кожного проєкту реалізується тестовий API-запит, успішна відповідь якого підтверджує credentials.
2. Список TU
- Golden Official API має
getLadies; він також використовується після login для перевірки, що credentials належать адмінці. Повний legacy sync окремо обходить active і deleted сторінками по 500. - Prime спочатку отримує counts за статусами, потім завантажує кожен статус сторінками по 15.
- Chathouse використовує pagination через
next. - Udate має
/female/listі GraphQLReferredUsersListShortз фільтром статусів.
3. Профіль TU
- Golden Official API не повертає пароль TU. Повний
extendedladydtoз паролем поки завантажується через GWT legacy transport. - Prime використовує
trusted-user/form-data, Udate — GraphQLSUProfile. - Chathouse повертає profile у paginated списку TU, тому окремий запит не потрібен.
4. Зміна пароля TU
- Golden використовує GWT
ChangePasswordRequestProcessor. - Prime перед зміною пароля додатково читає профіль TU.
- Chathouse має окремий
trusted-user/{id}/change-password. - В Udate пароля TU немає.
/api/operator/passwordзмінює пароль translator/operator, а GraphQLUpdateAgencyUserPassword— пароль поточного agency user.
5. Статистика
- Endpoint-и, фільтри та відмінності response описані у Project Statistics API.
6. Online TU через admin API
- Golden
agencyhelper getLadiesповертаєonlineдля кожної TU. Поточний Electron endpointcheckLadiesOnlineчитає адмін панель TU, викликає цей список і фільтрує передані ID. Official APIgetOnlineLadiesчерез credentials TU — окремий механізм. - Prime
trusted-user/collectionповертаєis_onlineу списку TU. - Chathouse
trusted-userповертаєis_online.trusted-user/ping-list— окрема операція підтримки активності, а не отримання online. - Udate
/female/listповертаєis_online, аSUProfile—isOnline./operator/online-statusesокремо повертає online операторів.
У всіх випадках admin API повертає snapshot стану на момент запиту. Історія online та стан активних Electron/worker connections є окремими логіками.
7. Коди доступу / створення TU
- Prime створює referral code.
- Chathouse створює, читає й активує auth codes.
8. Реальні подарунки для TU
- Golden має admin-операцію
setGiftsAvailable. Вона створюєpendingGiftsAvailable, після чого зміну має підтвердити директор. У наших робочих логіках ця операція ще не використовується. - Prime має admin endpoints для ввімкнення та вимкнення
realPresent; локально стан зберігається якprofile.gifts. - Udate повертає
canReceiveGiftу профілі TU, але mutation або admin endpoint для зміни цього дозволу в нашому коді не знайдено.
9. Оператори партнера
- Udate читає, створює й видаляє translators, змінює їхні паролі та виконує assign/unassign оператора до TU.
Заповнити
- Для Golden залишити GWT лише для операцій, яких ще немає в Official API.
- Зафіксувати нормалізований результат кожної спільної задачі під час проєктування відповідної фічі.