Путь к совершенству

This commit is contained in:
v228a 2025-02-19 16:13:34 +03:00
parent 3612959188
commit c5147cb105
4 changed files with 25 additions and 7 deletions

View File

@ -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<AuthorizationNetworkDataSource>,
): AuthorizationRepository {
override suspend fun login(username: String): Result<Unit> {
override suspend fun login(data: LoginDto): Result<Unit> {
return withContext(Dispatchers.IO) {
authorizationNetworkDataSource.get().checkLogin(username)
authorizationNetworkDataSource.get().checkLogin(data.username!!)
.onSuccess {
authorizationStorageDataSource.get().updateLogin(username)
authorizationStorageDataSource.get().updateLogin(data.username)
}
}
}

View File

@ -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<Unit> {
return repo.login(username = login)
// suspend operator fun invoke(login: String): Result<Unit> {
// return repo.login(username = login)
// }
suspend operator fun invoke(data: LoginDto): Result<Unit>{
return repo.login(data=data)
}
}

View File

@ -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<Unit>
//suspend fun login(username: String): Result<Unit>
suspend fun login(data: LoginDto): Result<Unit>
suspend fun logout()
suspend fun getLogin(): Result<String>

View File

@ -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