Перейти к основному содержимому

GetUserContactsListQuery

Назначение

Получение полного списка контактной информации пользователя по идентификатору пользователя. Используется для просмотра контактов другого пользователя (с проверкой прав на уровне API/middleware).

Цели

  • Загрузить все UserContactEntity пользователя по UserId
  • Получить информацию о типе контакта (ContactInfoType) для каждого контакта

Query: GetUserContactsListQuery

Входные данные

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя

Result: GetUserContactsListResult

ПолеТипОбязательноеОписание
EntriesIReadOnlyCollection<GetUserContactsListResultEntry>ДаСписок контактов

ResultEntry: GetUserContactsListResultEntry

ПолеТипОбязательноеОписание
ContactIdGuidДаИдентификатор контакта
ValuestringДаЗначение контакта
ContactInfoTypeContactInfoTypeDomainModelДаТип контакта (ContactInfoTypeId, Code, Name, Description, IconFileId)

Бизнес-логика

Основной сценарий

  1. Получить UserEntity из userEntityRepository.FindById по UserId.
  2. Если не найден — ошибка «Пользователь не найден».
  3. Получить UserContactEntity через userContactEntityRepository.GetByUserId.
  4. Загрузить ContactInfoTypeEntity по ContactInfoTypeId через contactInfoTypeEntityRepository.GetByIds.
  5. Сформировать Entries с ContactInfoType.
  6. Вернуть результат.

Альтернативные сценарии

  • Пользователь не найден: ошибка «Пользователь не найден» с метаданными UserId.

Диаграмма алгоритма

Связанные сущности