fix(realtime): доставлять обложку альбома после готовности вариантов
Карточка альбома не получала ссылку на обложку: она появляется в объекте альбома только после генерации thumb/medium, а событие об этом шаге в персональные потоки не публиковалось — счётчик обновлялся, обложка нет. - albums.Service.NotifyCoverReady публикует album.updated получателям, когда варианты готовы у фото, являющегося текущей обложкой (иначе no-op, чтобы массовая загрузка не рассылала событие на каждый файл) - photos: порт AlbumAccess расширен, worker вызывает публикацию после photo.updated - project.md §11/§12: триггер добавлен в контракт персонального потока
This commit is contained in:
+7
-1
@@ -464,7 +464,7 @@ data: {"id":"...","album_id":"...","thumb_url":"...","uploader":{...}}
|
||||
|---|---|---|
|
||||
| `notification` | создано уведомление для пользователя | объект уведомления |
|
||||
| `album.created` | альбом появился в списке пользователя (он его создал или принял инвайт) | объект альбома |
|
||||
| `album.updated` | изменены название/описание/обложка, состав участников или состав фото | объект альбома |
|
||||
| `album.updated` | изменены название/описание/обложка, состав участников, состав фото или готовы варианты фото-обложки | объект альбома |
|
||||
| `album.deleted` | альбом удалён владельцем или доступ отозван (исключение из участников) | `{"id":"..."}` |
|
||||
|
||||
Объект альбома в `album.created` и `album.updated` совпадает по полям с элементом
|
||||
@@ -481,6 +481,12 @@ data: {"id":"...","album_id":"...","thumb_url":"...","uploader":{...}}
|
||||
страница узнаёт об изменениях из `photo.*`). `photos_count` считает только фото вне
|
||||
корзины и совпадает с числом фото в сетке альбома.
|
||||
|
||||
Ссылка на обложку (`cover_thumb_url`, `cover_medium_url`) появляется в объекте альбома
|
||||
только после генерации вариантов thumb/medium, поэтому готовность вариантов у фото,
|
||||
являющегося текущей обложкой, тоже публикует `album.updated` получателям — иначе карточки
|
||||
альбомов остаются с заглушкой вместо обложки. Готовность вариантов прочих фото объект
|
||||
альбома не меняет и события не порождает.
|
||||
|
||||
### Backend: hub на каналах
|
||||
- В памяти `map[albumID]map[clientID]chan Event`
|
||||
- Регистрация клиента при подключении, удаление при отключении
|
||||
|
||||
Reference in New Issue
Block a user