family-tu-api

Family TU API

Сервіс, який має бути реалізований у кожному Family-проєкті. Виконує partner API-запити від імені TU, а в Udate — від імені призначеного suboperator.

Задача

Для кожної операції сервіс:

  1. Формує Family request.
  2. Передає його у FamilyRequestService.
  3. Нормалізує partner response.

Одна операція може використовуватися і family-application-api, і Electron. Family-реалізація операції при цьому залишається одна.

— є в поточному коді · 🟡 — є обмеження або треба уточнити контракт · — окремого API немає

Наш frontend і backend

Frontend звертається до family-application-api. За потреби він запускає відповідну операцію на Family-сервісі.

ОпераціяGoldenPrimeChathouseUdate
1Профіль TU для workspace тімліда
2Профіль RU🟡
3Переписка / повідомлення🟡
4Листування🟡
5mail медіа TU🟡
6Icebreakers
7Newsfeed
8Online RU для backend🟡🟡🟡

Live online RU наш frontend не запитує. Якщо online потрібен сторінці, frontend отримує вже збережені сервером дані.

Electron

ОпераціяGoldenPrimeChathouseUdate
1Online RU
2Профіль RU🟡
3Переписка / повідомлення🟡
4Листування🟡
5Непрочитані діалоги
6Усі діалоги
7Limits і restrictions
8Blocks🟡🟡
9mail медіа TU
10Відправлення повідомлення
11Відправлення листа
12Gifts / stickers / reactions
13Збережені діалоги / bookmarks
14Icebreakers
15Тримання online TU
16Створення діалогу
17Newsfeed
18Activity Alerts
19Stories
20Exclusive Posts

Likes не об’єднуються з bookmarks. Вхідні likes належать до подій і повідомлень Electron; окрему API-операцію додаємо лише там, де потрібно самостійно поставити або зняти like.

Udate Activity Alerts використовує Activity Alerts Udate, Stories — Stories Udate. Prime Exclusive Posts описані в окремій Electron-фічі.

Профіль TU

Не змішуємо три різні набори даних:

  1. Partner-профіль TU: TU Sync Worker оновлює FamilyTU.profile, а frontend читає його через TUService.
  2. Повний профіль у workspace тімліда: окремий live-запит від імені TU або suboperator через Family TU API.
  3. TU Card у Stack: наша внутрішня картка людини; до Family TU API не належить.

Поточні запити workspace тімліда: Golden — workspace/getLadyProfile, Prime — chat/getDetailInfo, Chathouse — supervisor/getProfile, Udate — supervisor/ladyProfile.

Медіа TU

Керування медіа описано у TUMediaService, Family-адаптація — у FamilyTUMediaService, конкретні запити — у Family TU Media API.

Online RU

FamilyПоточне отримання online RU
GoldenWorker напряму отримує загальні списки online RU і TU через partner API
PrimeСписок збирається для активної TU через online-діалоги
ChathouseСписок збирається для активної TU через пагінацію online-діалогів
UdateСписок збирається для активної TU через список діалогів з фільтром ONLINE

Для Electron це TU-операція. Для серверної статистики Golden має окреме джерело, а для Prime, Chathouse і Udate ще треба визначити, як передавати та зберігати зібраний online після перенесення workspace в Electron.

Family

  • Golden використовує простий API, GWT і Official API; transport визначається конкретною операцією.
  • Prime частину результатів повертає асинхронно через socket і messageIdForConfirm.
  • Chathouse виконує TU-запити з bearer token.
  • Udate виконує запити через session призначеного suboperator.