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

GetCurrentUserContactsListQuery

Назначение

Получение списка контактной информации текущего авторизованного пользователя. UserId и TenantId берутся из контекста авторизации.

Цели

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

Query: GetCurrentUserContactsListQuery

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

Входные параметры отсутствуют. UserId и TenantId извлекаются из IdentityContext.

Result: GetCurrentUserContactsListResult

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

ResultEntry: GetCurrentUserContactsListResultEntry

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

Валидация

  • UserId в контексте не должен быть default — иначе ошибка «Ошибка авторизации: идентификатор пользователя отсутствует в контексте»
  • Пользователь должен существовать

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

  1. Получить UserId и TenantId из TenantedUserIdentityContext.
  2. Если UserId == default — ошибка.
  3. Получить UserEntity по UserId. Если не найден — ошибка.
  4. Получить UserContactEntity по UserId через userContactEntityRepository.GetByUserId.
  5. Загрузить ContactInfoTypeHandbookEntity для всех ContactInfoTypeId.
  6. Сформировать Entries с ContactInfoType.
  7. Вернуть результат.

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

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