From 84e0b906bbbd29260ec4ee0ede953320493e2e85 Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Fri, 22 Mar 2024 09:34:30 +0100 Subject: [PATCH] [ADD] Requetes questions avec reponse simple --- .../model/buisness/QuestionRequestService.kt | 11 +++++ .../model/buisness/QuestionRequestor.kt | 45 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestService.kt create mode 100644 android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestor.kt diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestService.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestService.kt new file mode 100644 index 0000000..02352df --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestService.kt @@ -0,0 +1,11 @@ +package fr.iut.sciencequest.model.buisness + +import fr.iut.sciencequest.model.dto.question.QuestionListDTO +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.Query + +interface QuestionRequestService { + @GET("questions?page") + fun getQuestion(@Query("page") index: Int): Call +} \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestor.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestor.kt new file mode 100644 index 0000000..d60a3b2 --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/QuestionRequestor.kt @@ -0,0 +1,45 @@ +package fr.iut.sciencequest.model.buisness + +import android.util.Log +import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueDTO +import fr.iut.sciencequest.model.dto.question.QuestionListDTO +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response +import retrofit2.create +import java.lang.IllegalArgumentException + +fun fetchQuestions(index: Int) { + val serviceClient = createRequestService().create() + Log.d("Requete API","Fetch un scientifique") + serviceClient.getQuestion(index).enqueue( + object: Callback { + override fun onResponse( + call: Call, + response: Response + ) { + // NOTE : il faudrait probablement utiliser une autre exception + // exception personnalisée ? + val data = response.body() ?: + throw IllegalArgumentException("ERREUR : l'api a donné une réponse vide") + // Devrait appeler le ModelView, la méthode onResponse ne renvoit rien + // Pour le moment des print pour vérifier que la requêtre fonctionne + // sans avoir besoin des vues. + for (question in data.questions) { + Log.d("Requete Question", "id question: " + question.id.toString()) + Log.d("Requete Question","Libelle: " + question.question) + Log.d("Requete Question","Reponses: ") + for (reponse in question.reponses) { + Log.d("Requete Question","id: " + reponse.id) + Log.d("Requete Question","Libelle: " + reponse.reponse) + } + } + } + + override fun onFailure(call: Call, t: Throwable) { + Log.e("Requete API","Erreur lors d'une requete api") + throw t + } + } + ) +} \ No newline at end of file