project-tu-api

Project TU API

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

Задача

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

  1. Формує partner request проєкту.
  2. Передає його у ProjectRequestService.
  3. Нормалізує partner response.

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

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

Наш frontend і backend

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

№Операція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 оновлює ProjectTU.profile, а frontend читає його через TUService.
  2. Повний профіль у workspace тімліда: окремий live-запит від імені TU або suboperator через Project TU API.
  3. TU Card у Stack: наша внутрішня картка людини; до Project TU API не належить.

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

Медіа TU

Керування медіа описано у TUMediaService, адаптація для проєкту — у ProjectTUMediaService, конкретні запити — у Project TU Media API.

Online RU

ПроєктПоточне отримання 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.

Проєкти

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