diff --git a/.idea/modules/app/ScienceQuest.app.iml b/.idea/modules/app/ScienceQuest.app.iml
new file mode 100644
index 0000000..d048db3
--- /dev/null
+++ b/.idea/modules/app/ScienceQuest.app.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ 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/RequestService.kt b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiqueRequestService.kt
similarity index 77%
rename from android/app/src/main/java/fr/iut/sciencequest/model/RequestService.kt
rename to android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiqueRequestService.kt
index f302816..d6b381f 100644
--- a/android/app/src/main/java/fr/iut/sciencequest/model/RequestService.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,16 +11,16 @@ 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()
-interface RequestService {
+interface ScientifiqueRequestService {
@GET("scientifiques/{index}/{count}")
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..0d242e1
--- /dev/null
+++ b/android/app/src/main/java/fr/iut/sciencequest/model/buisness/ScientifiquesRequestor.kt
@@ -0,0 +1,67 @@
+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 d'une requete api")
+ throw t
+ }
+ }
+ )
+}
+
+fun fetchScientifiquesById(index: Int, count: Int) {
+ val serviceClient = createRequestService().create()
+ Log.d("Requete API","Fetch plusieurs scientifiques")
+ serviceClient.getScientifiques(index, count).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 (scientifique in data) {
+ Log.d("Requete API",scientifique.id.toString())
+ Log.d("Requete API", scientifique.nom)
+ }
+ }
+
+ 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
diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/dto/ScientifiqueDTO.kt b/android/app/src/main/java/fr/iut/sciencequest/model/dto/ScientifiqueDTO.kt
index 605b44c..10ca167 100644
--- a/android/app/src/main/java/fr/iut/sciencequest/model/dto/ScientifiqueDTO.kt
+++ b/android/app/src/main/java/fr/iut/sciencequest/model/dto/ScientifiqueDTO.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