Merge remote-tracking branch 'origin/Android' into Android

RepositoryAndroid
Victor SOULIER 1 year ago
commit ca2ae68925

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="ModuleClassLoaderOverlays">
<paths>
<option value="/tmp/overlay10633925828874165666" />
<option value="/tmp/overlay8943318448700809082" />
<option value="/tmp/overlay8977085641070230858" />
</paths>
</component>
</module>

@ -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

@ -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<List<ScientifiqueDTO>>
@GET("scientifiques/{id}")
fun getScientifique(@Path("id") id: Int)
fun getScientifique(@Path("id") id: Int): Call<ScientifiqueDTO>
}
fun createRequestService(): Retrofit =

@ -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<ScientifiqueRequestService>()
Log.d("Requete API","Fetch un scientifique")
serviceClient.getScientifique(id).enqueue(
object: Callback<ScientifiqueDTO> {
override fun onResponse(
call: Call<ScientifiqueDTO>,
response: Response<ScientifiqueDTO>
) {
// 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<ScientifiqueDTO>, t: Throwable) {
Log.e("Requete API","Erreur lors d'une requete api")
throw t
}
}
)
}
fun fetchScientifiquesById(index: Int, count: Int) {
val serviceClient = createRequestService().create<ScientifiqueRequestService>()
Log.d("Requete API","Fetch plusieurs scientifiques")
serviceClient.getScientifiques(index, count).enqueue(
object: Callback<List<ScientifiqueDTO>> {
override fun onResponse(
call: Call<List<ScientifiqueDTO>>,
response: Response<List<ScientifiqueDTO>>
) {
// 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<List<ScientifiqueDTO>>, t: Throwable) {
Log.e("Requete API","Erreur lors d'une requete api")
throw t
}
}
)
}

@ -13,5 +13,6 @@ data class ScientifiqueDTO (
@SerialName("ratiotrouve")
val ratioTrouve: Float,
val sexe: Char,
val difficulte: DifficulteDTO
val difficulteId: Int,
val thematiqueId: Int
)
Loading…
Cancel
Save