GetCurrentUserContactsListQuery
Назначение
Получение списка контактной информации текущего авторизованного пользователя. UserId и TenantId берутся из контекста авторизации.
Цели
- Предоставить клиенту собственные контакты без явной передачи UserId
- Загрузить контакты с информацией о типе (ContactInfoType)
Query: GetCurrentUserContactsListQuery
Входные данные
Входные параметры отсутствуют. UserId и TenantId извлекаются из IdentityContext.
Result: GetCurrentUserContactsListResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| Entries | IReadOnlyCollection<GetCurrentUserContactsListResultEntry> | Да | Список контактов |
ResultEntry: GetCurrentUserContactsListResultEntry
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| ContactId | Guid | Да | ID контакта |
| Value | string | Да | Значение |
| ContactInfoType | ContactInfoTypeDomainModel | Да | Тип контакта (ContactInfoTypeId, Code, Name, Description, IconFileId) |
Валидация
- UserId в контексте не должен быть default — иначе ошибка «Ошибка авторизации: идентификатор пользователя отсутствует в контексте»
- Пользователь должен существовать
Бизнес-логика
- Получить UserId и TenantId из TenantedUserIdentityContext.
- Если UserId == default — ошибка.
- Получить UserEntity по UserId. Если не найден — ошибка.
- Получить UserContactEntity по UserId через userContactEntityRepository.GetByUserId.
- Загрузить ContactInfoTypeHandbookEntity для всех ContactInfoTypeId.
- Сформировать Entries с ContactInfoType.
- Вернуть результат.