From 14cf326e0b0f85ff7dc6ad70f93ece17b6b3d213 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 3 Dec 2025 17:34:25 +0300 Subject: [PATCH] auth broken --- .../java/ru/myitschool/work/core/Constants.kt | 2 +- .../work/data/repo/AuthRepository.kt | 31 +++++++++++++------ .../work/data/source/NetworkDataSource.kt | 6 ++-- .../auth/CheckAndSaveAuthCodeUseCase.kt | 20 ++++++------ .../work/ui/screen/auth/AuthViewModel.kt | 1 + 5 files changed, 38 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/core/Constants.kt b/app/src/main/java/ru/myitschool/work/core/Constants.kt index 5fe3adf..4a23c92 100644 --- a/app/src/main/java/ru/myitschool/work/core/Constants.kt +++ b/app/src/main/java/ru/myitschool/work/core/Constants.kt @@ -1,7 +1,7 @@ package ru.myitschool.work.core object Constants { - const val HOST = "http://192.168.1.39:8080" + const val HOST = "http://172.22.21.143:8080" const val AUTH_URL = "/auth" const val INFO_URL = "/info" const val BOOKING_URL = "/booking" diff --git a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt b/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt index 555399d..d108bf6 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt +++ b/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt @@ -1,21 +1,34 @@ package ru.myitschool.work.data.repo -import android.content.Context + import ru.myitschool.work.data.source.DataStoreDataSource.createAuthCode import ru.myitschool.work.data.source.NetworkDataSource + object AuthRepository { private var codeCache: String? = null + suspend fun checkAndSave(text: String): Result { - /* return NetworkDataSource.checkAuth(text).onSuccess { success -> - if (success) { - codeCache = text - createAuthCode(code = text) + return try { + val result = NetworkDataSource.checkAuth(text) + + when { + result.isSuccess && result.getOrNull() == true -> { + codeCache = text + createAuthCode(code = text) + Result.success(true) + } + result.isFailure -> { + val exception = result.exceptionOrNull() + val errorMessage = exception?.message ?: "Ошибка авторизации" + Result.failure(Exception(errorMessage)) + } + else -> { + Result.success(false) + } } + } catch (e: Exception) { + Result.failure(e) } - } */ - codeCache = text - createAuthCode(code = text) - return Result.success(true) // TODO: ВЕРНУТЬ СЕТЕВОЙ ЗАПРОС } } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt b/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt index 546f664..19b2c91 100644 --- a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt +++ b/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt @@ -35,10 +35,12 @@ object NetworkDataSource { suspend fun checkAuth(code: String): Result = withContext(Dispatchers.IO) { return@withContext runCatching { - val response = client.get(getUrl(code, Constants.AUTH_URL)) // TODO: Отпрвка запроса на сервер + val response = client.get(getUrl(code, Constants.AUTH_URL)) + when (response.status) { HttpStatusCode.OK -> true - else -> error(response.bodyAsText()) + HttpStatusCode.Unauthorized, HttpStatusCode.BadRequest -> false + else -> error("Request error: ${response.bodyAsText()}") } } } diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt b/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt index 012fb6f..8104595 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt @@ -2,14 +2,14 @@ package ru.myitschool.work.domain.auth import ru.myitschool.work.data.repo.AuthRepository -class CheckAndSaveAuthCodeUseCase( - private val repository: AuthRepository -) { - suspend operator fun invoke( - text: String - ): Result { - return repository.checkAndSave(text).mapCatching { success -> - if (!success) error("Code is incorrect") + class CheckAndSaveAuthCodeUseCase( + private val repository: AuthRepository + ) { + suspend operator fun invoke( + text: String + ): Result { + return repository.checkAndSave(text).mapCatching { success -> + if (!success) error("Code is incorrect") + } } - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt index 0a0ac5b..0aa62d2 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthViewModel.kt @@ -38,6 +38,7 @@ class AuthViewModel : ViewModel() { }, onFailure = { error -> error.printStackTrace() + error.message?.let { Log.d("AnnaKonda", it) } if (error.message != null) { _actionFlow.emit(AuthAction.ShowError(error.message.toString())) }