42 lines
1.4 KiB
Kotlin
42 lines
1.4 KiB
Kotlin
package com.example.tpfilrouge.auth
|
|
|
|
import androidx.lifecycle.ViewModel
|
|
import androidx.lifecycle.viewModelScope
|
|
import com.example.tpfilrouge.helpers.AppDialogHelpers
|
|
import kotlinx.coroutines.flow.MutableStateFlow
|
|
import kotlinx.coroutines.launch
|
|
|
|
class LoginViewModel : ViewModel() {
|
|
|
|
// Ecouter la saisie de email et password
|
|
var email = MutableStateFlow("isaac@gmail.com")
|
|
var password = MutableStateFlow("password")
|
|
|
|
fun callLoginApi(onSuccess : () -> Unit = {}){
|
|
AppDialogHelpers.get().showDialog("Tentive de connexion...");
|
|
|
|
viewModelScope.launch {
|
|
// Preparer le DTO à envoyer dans request body
|
|
// Le DTO qui contient : email et password
|
|
val loginRequest = LoginRequestDTO(email.value, password.value);
|
|
|
|
// Appel api async
|
|
val responseService = AuthService.AuthApi.authService.login(loginRequest);
|
|
|
|
// Fermer la popup de chargement aprés l'appel de API
|
|
AppDialogHelpers.get().closeDialog()
|
|
|
|
// Si connexion ok
|
|
if (responseService.code.equals("200")){
|
|
// Je notifie que c'est ok
|
|
println("Connexion OK")
|
|
// Note: J'appel la fonction que j'envoie en parametre de la fonction
|
|
onSuccess();
|
|
}
|
|
else{
|
|
// Erreur
|
|
println("Connexion échouée")
|
|
}
|
|
}
|
|
}
|
|
} |