diff --git a/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt b/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt index 2229564..b874e98 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt +++ b/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt @@ -9,6 +9,7 @@ import dagger.Lazy import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.withContext +import ru.myitschool.work.data.dto.LoginDto @Reusable class AuthorizationRepositoryImpl @Inject constructor( @@ -16,11 +17,11 @@ class AuthorizationRepositoryImpl @Inject constructor( private val authorizationNetworkDataSource: Lazy, ): AuthorizationRepository { - override suspend fun login(username: String): Result { + override suspend fun login(data: LoginDto): Result { return withContext(Dispatchers.IO) { - authorizationNetworkDataSource.get().checkLogin(username) + authorizationNetworkDataSource.get().checkLogin(data.username!!) .onSuccess { - authorizationStorageDataSource.get().updateLogin(username) + authorizationStorageDataSource.get().updateLogin(data.username) } } } diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt b/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt index 62b593d..8a03459 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt @@ -1,12 +1,17 @@ package ru.myitschool.work.domain.auth +import ru.myitschool.work.data.dto.LoginDto import ru.myitschool.work.domain.auth.repo.AuthorizationRepository import javax.inject.Inject class LoginUseCase @Inject constructor( private val repo: AuthorizationRepository, ) { - suspend operator fun invoke(login: String): Result { - return repo.login(username = login) +// suspend operator fun invoke(login: String): Result { +// return repo.login(username = login) +// } + suspend operator fun invoke(data: LoginDto): Result{ + return repo.login(data=data) } + } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt index 5324b58..2d7bab5 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt @@ -1,8 +1,11 @@ package ru.myitschool.work.domain.auth.repo +import ru.myitschool.work.data.dto.LoginDto + interface AuthorizationRepository { //br - suspend fun login(username: String): Result + //suspend fun login(username: String): Result + suspend fun login(data: LoginDto): Result suspend fun logout() suspend fun getLogin(): Result diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt index 1f62bc0..3e8811c 100644 --- a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt @@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import ru.myitschool.work.R +import ru.myitschool.work.data.dto.LoginDto import ru.myitschool.work.domain.auth.CheckValidLoginUseCase import ru.myitschool.work.domain.auth.LoginUseCase import ru.myitschool.work.utils.MutablePublishFlow @@ -31,11 +32,13 @@ class LoginViewModel @Inject constructor( val state = _state.asStateFlow() private var login: String = "" + private var password: String = "123"//пока пароль по дефалту fun clickLogin() { viewModelScope.launch { _state.update { State.Loading } - loginUseCase.get().invoke(login = login).fold( + val data = LoginDto(login,password) + loginUseCase.get().invoke(data).fold( onSuccess = { _action.emit(Action.OpenProfile) }, @@ -51,6 +54,9 @@ class LoginViewModel @Inject constructor( } } + + + //Чек пароля на правильность fun inputLogin(login: String) { this.login = login viewModelScope.launch { @@ -61,6 +67,9 @@ class LoginViewModel @Inject constructor( } } } + fun passwordCheck(password: String){ + this.password = password + } sealed interface Action { data object OpenProfile : Action