This commit is contained in:
Trey t
2025-11-04 10:51:20 -06:00
parent 78c62cfc52
commit de1c7931e9
21 changed files with 1645 additions and 87 deletions

View File

@@ -6,6 +6,7 @@ import com.mycrib.shared.models.LoginRequest
import com.mycrib.shared.models.RegisterRequest
import com.mycrib.shared.network.ApiResult
import com.mycrib.shared.network.AuthApi
import com.mycrib.storage.TokenStorage
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
@@ -21,7 +22,11 @@ class AuthViewModel : ViewModel() {
_loginState.value = ApiResult.Loading
val result = authApi.login(LoginRequest(username, password))
_loginState.value = when (result) {
is ApiResult.Success -> ApiResult.Success(result.data.token)
is ApiResult.Success -> {
// Store token for future API calls
TokenStorage.saveToken(result.data.token)
ApiResult.Success(result.data.token)
}
is ApiResult.Error -> result
else -> ApiResult.Error("Unknown error")
}
@@ -39,10 +44,24 @@ class AuthViewModel : ViewModel() {
)
)
_loginState.value = when (result) {
is ApiResult.Success -> ApiResult.Success(result.data.token)
is ApiResult.Success -> {
// Store token for future API calls
TokenStorage.saveToken(result.data.token)
ApiResult.Success(result.data.token)
}
is ApiResult.Error -> result
else -> ApiResult.Error("Unknown error")
}
}
}
fun logout() {
viewModelScope.launch {
val token = TokenStorage.getToken()
if (token != null) {
authApi.logout(token)
}
TokenStorage.clearToken()
}
}
}