family-admin-api

Family Admin API

Сервіс, який має бути реалізований у кожному Family-проєкті. Виконує запити до партнерського API від імені FamilyAdmin.

Задача

Для кожної операції сервіс викликає типізований метод відповідного Family API client. Сирі URL, command і partner body не виходять за межі API client.

Family-сервіс не перетворює partner response у canonical FamilyTU. Він повертає типізований Family-контракт, а canonical-нормалізацію виконує adapter у family-application-api.

Реалізований internal API Golden

family-golden не має публічного frontend API. У внутрішній Docker network доступні лише операції, які вже використовує family-application-api:

ОпераціяEndpoint
1Перевірити credentials адмінкиPOST /internal/admins/validate-credentials
2Отримати TU всіх активних canonical-адмінок директораPOST /internal/admins/tus
3Змінити partner password TUPATCH /internal/admins/tus/password

family-golden читає credentials із family_admins, розшифровує secret лише перед partner request і не повертає його назовні.

Важливі запити

Це не повний список partner API. Тут фіксуємо лише запити, потрібні поточним або запланованим логікам Family Platform.

Таблиця нижче описує відомі partner/legacy можливості, а не готовність нових family-* сервісів. ✅ є та використовується у чинній системі · 🟡 API є, але ще не використовується · ❓ не підтверджено · — не знайдено

МожливістьGoldenPrimeChathouseUdate
1Перевірка credentials адмінки
2Список TU
3Профіль TU
4Зміна пароля TU
5Статистика
6Online TU через admin API
7Коди доступу / створення TU
8Реальні подарунки для TU🟡
9Оператори партнера

Нюанси

1. Перевірка credentials адмінки

  • Для кожної Family реалізується тестовий API-запит, успішна відповідь якого підтверджує credentials.

2. Список TU

  • Golden Official API має getLadies; він також використовується після login для перевірки, що credentials належать адмінці. Повний legacy sync окремо обходить active і deleted сторінками по 500.
  • Prime спочатку отримує counts за статусами, потім завантажує кожен статус сторінками по 15.
  • Chathouse використовує pagination через next.
  • Udate має /female/list і GraphQL ReferredUsersListShort з фільтром статусів.

3. Профіль TU

  • Golden Official API не повертає пароль TU. Повний extendedladydto з паролем поки завантажується через GWT legacy transport.
  • Prime використовує trusted-user/form-data, Udate — GraphQL SUProfile.
  • Chathouse повертає profile у paginated списку TU, тому окремий запит не потрібен.

4. Зміна пароля TU

  • Golden використовує GWT ChangePasswordRequestProcessor.
  • Prime перед зміною пароля додатково читає профіль TU.
  • Chathouse має окремий trusted-user/{id}/change-password.
  • В Udate пароля TU немає. /api/operator/password змінює пароль translator/operator, а GraphQL UpdateAgencyUserPassword — пароль поточного agency user.

5. Статистика

  • Endpoint-и, фільтри та відмінності response описані у Family Statistics API.

6. Online TU через admin API

  • Golden agencyhelper getLadies повертає online для кожної TU. Поточний Electron endpoint checkLadiesOnline читає адмінку TU, викликає цей список і фільтрує передані ID. Official API getOnlineLadies через credentials TU — окремий механізм.
  • Prime trusted-user/collection повертає is_online у списку TU.
  • Chathouse trusted-user повертає is_online. trusted-user/ping-list — окрема операція підтримки активності, а не отримання online.
  • Udate /female/list повертає is_online, а SUProfileisOnline. /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.
  • Зафіксувати нормалізований результат кожної спільної задачі під час проєктування відповідної фічі.