Change language

rp-chats

Назначение

Комнаты чатов, их участники и контексты для каждой комнаты. Самой переписки
здесь нет: комната содержит threadId, а сообщения находятся в
rp-threads.

Граница ответственности

Отвечает за комнаты, роли и контексты. Не вызывает другие репозитории —
createRoom создаёт threadId и возвращает его, а вызывающий код регистрирует
тред.

Идентификация и доступ

Вызывающий код получает идентификатор из проверенного токена, а не из
параметра. Стоит отметить два следствия:

  • listRooms ограничивает область выборки вызывающим кодом внутри запроса, поэтому подстановка идентификатора другого
    пользователя больше не позволяет прочитать его комнаты, а totalCount не может раскрыть количество комнат,
    которые были скрыты;
  • любой запрос к одной комнате по идентификатору сначала проверяет членство.

chart_room_users сохраняется и после появления access_tags: тег выражает
членство, но не различает owner, admin и member.

Примечание об именах таблиц

Таблицы называются chart_rooms / chart_room_users. Опечатка
последовательно воспроизводится в миграциях, сущностях и запросах, поэтому код
работает; переименование — это миграция, а не редактирование.

Прямые зависимости модуля

  • back-core, nrpc, g-chats

Принадлежность к решению

  • communications

Исходный код

modules/repositories/communications/rp-chats