Mise en place de notre UseCase de connexion

Objectifs

  • Mettre en place le useCase qui permettra la vérification des identifiants

  • Récupérer l'utilisateur et le stocker en variable global

  • Câbler notre viewModel au useCase

Nous avions laissé notre viewModel de connexion avec des données brut, nous allons maintenant mettre en place un useCase de connexion permettant de vérifier les identifiants entrés lors de la connexion et de permettre à l'utilisateur de se connecter.

Nous stockons ensuite notre utilisateur récupéré dans une classe static afin de le rendre unique au travers de l'application.

ConnectUseCase :

Même structure que pour récupérer nos questions, notre useCase prend en paramètre le userDao pour instancier notre repository. Il implémente « IFetchUseCase » et renvoie un objet « Result » avec le generic a « Nothing » car nous enregistrons notre user directement dans le useCase.

On enregistre l'utilisateur de la session et un boolean pour la connexion dans une classe companion object pour pouvoir récupérer ces valeurs dans l'application si besoin.

LoginViewModel :

Comme pour nos questions, on vérifie si le résultat est un succès ou un échec et on enregistre le boolean dans une liveData pour la transmettre à notre fragment.