From e636f3dc9c17b60ff5b996bc42fe0383241a6207 Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Wed, 20 Mar 2024 09:36:33 +0100 Subject: [PATCH] =?UTF-8?q?[ADD]=20FetchScientifique=20(fonctione=20=3F=20?= =?UTF-8?q?logcat=20ne=20veut=20pas=20log=20donc=20pas=20s=C3=BBr=20=3F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/modules/app/ScienceQuest.app.iml | 9 +++++ .../java/fr/iut/sciencequest/MainActivity.kt | 3 ++ .../ScientifiqueRequestService.kt | 6 +-- .../model/buisness/ScientifiquesRequestor.kt | 37 +++++++++++++++++++ .../sciencequest/model/dto/Scientifique.kt | 3 +- 5 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 .idea/modules/app/ScienceQuest.app.iml rename android/app/src/main/java/fr/iut/sciencequest/model/{ => buisness}/ScientifiqueRequestService.kt (80%) create mode 100644 android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt diff --git a/.idea/modules/app/ScienceQuest.app.iml b/.idea/modules/app/ScienceQuest.app.iml new file mode 100644 index 0000000..8505770 --- /dev/null +++ b/.idea/modules/app/ScienceQuest.app.iml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt b/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt index bd86650..284f64e 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/MainActivity.kt @@ -1,18 +1,21 @@ package fr.iut.sciencequest import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier +import fr.iut.sciencequest.model.buisness.fetchScientifiqueById import fr.iut.sciencequest.navigation.NavHost import fr.iut.sciencequest.ui.theme.ScienceQuestTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + fetchScientifiqueById(1) setContent { ScienceQuestTheme { // A surface container using the 'background' color from the theme diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/ScientifiqueRequestService.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiqueRequestService.kt similarity index 80% rename from android/app/src/main/java/fr/iut/sciencequest/model/ScientifiqueRequestService.kt rename to android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiqueRequestService.kt index 3185d7e..d6b381f 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/ScientifiqueRequestService.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiqueRequestService.kt @@ -1,4 +1,4 @@ -package fr.iut.sciencequest.model +package fr.iut.sciencequest.model.buisness import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import fr.iut.sciencequest.model.dto.ScientifiqueDTO @@ -11,7 +11,7 @@ import retrofit2.http.GET import retrofit2.http.Path // a remplir -private const val API_BASE_URL = "" +private const val API_BASE_URL = "https://sae-java.alix-jdlm.fr/api/v1" val httpClient = OkHttpClient() @@ -20,7 +20,7 @@ interface ScientifiqueRequestService { fun getScientifiques(@Path("index") index: Int, @Path("count") count: Int): Call> @GET("scientifiques/{id}") - fun getScientifique(@Path("id") id: Int) + fun getScientifique(@Path("id") id: Int): Call } fun createRequestService(): Retrofit = diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt new file mode 100644 index 0000000..f0e0479 --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt @@ -0,0 +1,37 @@ +package fr.iut.sciencequest.model.buisness + +import android.util.Log +import fr.iut.sciencequest.model.dto.ScientifiqueDTO +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response +import retrofit2.create +import java.lang.IllegalArgumentException + +fun fetchScientifiqueById(id: Int) { + val serviceClient = createRequestService().create() + Log.d("Requete API","Fetch un scientifique") + serviceClient.getScientifique(id).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. + Log.d("Requete API",data.id.toString()) + Log.d("Requete API", data.nom) + } + + override fun onFailure(call: Call, t: Throwable) { + Log.e("Requete API","Erreur lors de requete api") + throw t + } + } + ) +} \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/dto/Scientifique.kt b/android/app/src/main/java/fr/iut/sciencequest/model/dto/Scientifique.kt index 89f8eda..338005a 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/dto/Scientifique.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/dto/Scientifique.kt @@ -13,5 +13,6 @@ data class ScientifiqueDTO ( @SerialName("ratiotrouve") val ratioTrouve: Float, val sexe: Char, - val difficulte: DifficulteDTO + val difficulteId: Int, + val thematiqueId: Int ) \ No newline at end of file