WTEL-9725: Return contact etag in agent chats response - #140
Conversation
kirychukyurii
left a comment
There was a problem hiding this comment.
а чи розглядався варіант локального кодування etag? ми ж все одно ходимо в contacts.contact, а витягнути додатково ver з неї - не зовсім проблема
у нас навіть окремий пакет є для роботи з etag: https://github.com/webitel/webitel-go-kit/tree/main/pkg/etag
можливо варто на нього перевести webitel.go?
По суті згоден, ver вже є в джойні на contacts.contact, локально закодувати можна. Єдине що наче pkg/etag з go-kit несумісний з contacts, там інший base32 алфавіт і інша нумерація типів. Його etag contacts не розкодує на скільки я розумію. |
ага, etag з go-kit несумісний з тим, що є в репо webitel.go |
🤖 Webitel Code ReviewЦей пул-реквест додає поле 📋 Walkthrough (6 файл(и/ів))
Знахідки
Index-grounded review across the Webitel codebase. Знахідки можуть бути неточними — перевіряйте перед застосуванням. |
Готово в цьому + повʼязані пр: |
…-etag-in-agent-chats
Проблема
Роут GET /api/agent/chats повертав обʼєкт contact без поля etag (лише id, type, name). Фронт будує посилання на картку контакта за contact.etag, тож отримував undefined, і перехід на картку у режимі Read only ламався.
etag контакта не зберігається в БД, його кодує сам сервіс contacts, тому chat_manager, який збирає контакт напряму з таблиць contacts.* через SQL, віддати etag не міг.
Вирішення
chat_manager не вираховує etag, а доспрашує його у самого сервіса contacts і дозаповнює відповідь. Запит іде одним батчем на сторінку під токеном агента. Якщо contacts недоступний, список чатів усе одно повертається, просто без etag.