Skip to content

ANDR-88: Сетевой слой + Domain#148

Merged
Gaileks merged 7 commits into
epic/ANDR-81from
feature/ANDR-88
May 27, 2026
Merged

ANDR-88: Сетевой слой + Domain#148
Gaileks merged 7 commits into
epic/ANDR-81from
feature/ANDR-88

Conversation

@Gaileks
Copy link
Copy Markdown
Collaborator

@Gaileks Gaileks commented May 27, 2026

🧩 Что сделано:
Реализован сетевой и data/domain слой авторизации:

• Добавлены DTO-модели для авторизации
• Добавлены domain-модели результата авторизации
• Расширен ApiService методами login и getProfile
• Добавлен RemoteDataSource для выполнения login-запроса
• Добавлен Repository для авторизации
• Добавлены mapper’ы для преобразования domain ↔ data моделей
• LoginUseCase теперь возвращает результат успешной авторизации

Обработка ошибок:
• Добавлен ErrorResponseDto для backend-ошибок
• Реализован маппинг HttpException
• Реализован маппинг backend error key в LoginError
• Добавлены новые ошибки авторизации:
• неверный пароль
• аккаунт заблокирован
• слишком много попыток входа
• email не подтверждён

DI:
• Добавлена регистрация mapper’ов
• Добавлена регистрация RemoteDataSource
• Добавлена регистрация Repository
• Добавлена регистрация LoginUseCase

🗂 Затронутые модули:
• core:network-api
• feature:authentication:impl

xMODDIIx and others added 7 commits April 19, 2026 13:28
* ANDR-95: вынос общих полей ввода и логики валидации в core модули

* ANDR-95: Обновил core/ui/build.gradle.kts: Добавил implementation(libs.androidx.icons)

* ANDR-95: улучшена функция для максимальной переиспользуемости. Так же улучшена Preview часть

* ANDR-95: переименовал функции понятным для всех неймингом, исправил ошибки ktlint

* ANDR-95: рефакторинг TextField + реализация SearchTextField

* ANDR-95: удаление старого после рефакторинга
#134)

* ANDR-95-fix-text-field: добавил второй modifier для OutlinedTextField. Обновил шрифты и отступы согласно дизайну в фигме

* ANDR-95-fix-text-field: добавилен параметр по умолчанию - readOnly: Boolean = false, и проброшен в остальные функции
- State / Action / Command / ViewModel
- Sealed-модель состояний
- Обработка команд вынесена
- Упрощен LoginState: вместо sealed-состояний используется одна data class модель
- Удалены LoginFormState, LoginRawState и LoginFieldErrorState
- Добавлен LoginUserInput для хранения пользовательского ввода
- Loading перенесен в поле isSubmitting
- Экранный state теперь формируется через LoginStateMapper из userInputState
- Исправлена локальная валидация email, password
- Добавлена обработка потери фокуса для email и password
- Ошибки под полями больше не показываются при первом открытии экрана
- Кнопка входа блокируется при пустом (невалидном email) или пустом пароле
- При Network,  Server, Unknown ошибках показывается только Snackbar без принудительного показа локальных ошибок
- Добавлены DTO-модели для login response и backend ошибок
- Добавлены domain-модели AuthResult, AuthTokens и UserProfile
- Расширен ApiService методами login и getProfile
- Добавлен LoginRemoteDataSource для выполнения запроса авторизации
- Добавлен LoginRepositoryImpl для работы с login API
- Добавлены mapper’ы LoginDomainToDataMapper и LoginResponseToDomainMapper
- LoginUseCase теперь возвращает результат успешной авторизации
- Расширен LoginError новыми ошибками авторизации
- Добавлен маппинг IOException в Network ошибку
- Добавлен маппинг HttpException по backend error key и HTTP status code
- Добавлена DI-регистрация mapper’ов, remote data source, repository и use case
# Conflicts:
#	feature/authentication/impl/src/main/java/ru/yeahub/authentication/impl/login/domain/entity/LoginError.kt
#	feature/authentication/impl/src/main/java/ru/yeahub/authentication/impl/login/domain/repository/LoginRepositoryApi.kt
#	feature/authentication/impl/src/main/java/ru/yeahub/authentication/impl/login/domain/usecase/LoginUseCase.kt
@Gaileks Gaileks merged commit 945adbf into epic/ANDR-81 May 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants