day3_commit1_fixed_loginauth

This commit is contained in:
Terebov_Maksim 2025-02-20 10:28:10 +03:00
parent cd32de6116
commit 3f8e032428
4 changed files with 13 additions and 5 deletions
app/src/main
java/ru/myitschool/work
res/navigation

@ -15,7 +15,7 @@ interface ApiService {
suspend fun authenticate( suspend fun authenticate(
@Query("login") login: String, @Query("login") login: String,
@Query("password") password: String @Query("password") password: String
): Response<String> // Измените ResponseBody на String // Возвращаем ResponseBody вместо String ): Response<Unit> // Измените Response<String> на Response<Unit>
// Другие методы... // Другие методы...
@GET("/api/{login}/info") // Получение информации о пользователе @GET("/api/{login}/info") // Получение информации о пользователе
@ -25,7 +25,7 @@ interface ApiService {
suspend fun getEmployeeInfo(@Path("login") login: String): Response<EmployeeData> suspend fun getEmployeeInfo(@Path("login") login: String): Response<EmployeeData>
@PATCH("/api/open") // Открыть дверь @PATCH("/api/open") // Открыть дверь
suspend fun openDoor(@Body request: OpenDoorRequest): Response<String> suspend fun openDoor(@Body request: OpenDoorRequest): Response<Unit> // Измените Response<String> на Response<Unit>
@POST("/api/employee/toggleAccess") // Метод для блокировки/разблокировки доступа @POST("/api/employee/toggleAccess") // Метод для блокировки/разблокировки доступа
suspend fun toggleAccess(@Body request: ToggleAccessRequest): Response<Unit> suspend fun toggleAccess(@Body request: ToggleAccessRequest): Response<Unit>

@ -1,4 +1,4 @@
package ru.myitschool.work.ui.Main package ru.myitschool.work.ui.main
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View

@ -19,31 +19,39 @@ class LoginViewModel @Inject constructor(
val state: StateFlow<LoginState> get() = _state val state: StateFlow<LoginState> get() = _state
fun authenticate(username: String, password: String) { fun authenticate(username: String, password: String) {
Log.d("LoginViewModel", "Authenticating user: $username") // Логируем начало аутентификации
if (isValidUsername(username)) { if (isValidUsername(username)) {
viewModelScope.launch { viewModelScope.launch {
try { try {
Log.d("LoginViewModel", "Sending authentication request to server") // Логируем отправку запроса
val response = apiService.authenticate(username, password) val response = apiService.authenticate(username, password)
Log.d("LoginViewModel", "Response code: ${response.code()}") Log.d("LoginViewModel", "Response code: ${response.code()}") // Логируем код ответа
// Проверяем код ответа // Проверяем код ответа
when (response.code()) { when (response.code()) {
200 -> { 200 -> {
_state.value = LoginState(success = true) // Успешная авторизация _state.value = LoginState(success = true) // Успешная авторизация
Log.d("LoginViewModel", "Authentication successful") // Логируем успешную аутентификацию
} }
400 -> { 400 -> {
_state.value = LoginState(error = "Ошибка авторизации: Неверные учетные данные.") _state.value = LoginState(error = "Ошибка авторизации: Неверные учетные данные.")
Log.d("LoginViewModel", "Authentication failed: Invalid credentials") // Логируем ошибку
} }
else -> { else -> {
_state.value = LoginState(error = "Ошибка авторизации: ${response.message()}") _state.value = LoginState(error = "Ошибка авторизации: ${response.message()}")
Log.d("LoginViewModel", "Authentication failed: ${response.message()}") // Логируем ошибку
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
_state.value = LoginState(error = "Ошибка сети. Проверьте подключение к интернету.") _state.value = LoginState(error = "Ошибка сети. Проверьте подключение к интернету.")
Log.e("LoginViewModel", "Network error: ${e.message}") // Логируем ошибку сети
} }
} }
} else { } else {
_state.value = LoginState(error = "Неправильный логин") _state.value = LoginState(error = "Неправильный логин")
Log.d("LoginViewModel", "Invalid username: $username") // Логируем неправильный логин
} }
} }

@ -24,7 +24,7 @@
<fragment <fragment
android:id="@+id/adminFragment" android:id="@+id/adminFragment"
android:name="ru.myitschool.work.ui.admin.AdminFragment" android:name="ru.myitschool.work.ui.main.AdminFragment"
android:label="Admin Fragment" android:label="Admin Fragment"
tools:layout="@layout/fragment_admin" /> tools:layout="@layout/fragment_admin" />