ANDR-88: Сетевой слой + Domain#148
Merged
Merged
Conversation
* 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
kish-dev
approved these changes
May 27, 2026
aix-17
approved these changes
May 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🧩 Что сделано:
Реализован сетевой и 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