[ADD] FetchScientifique (fonctione ? logcat ne veut pas log donc pas sûr ?)

RepositoryAndroid
Renaud BEURET 1 year ago
parent fe5734143f
commit e636f3dc9c

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

@ -1,18 +1,21 @@
package fr.iut.sciencequest package fr.iut.sciencequest
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import fr.iut.sciencequest.model.buisness.fetchScientifiqueById
import fr.iut.sciencequest.navigation.NavHost import fr.iut.sciencequest.navigation.NavHost
import fr.iut.sciencequest.ui.theme.ScienceQuestTheme import fr.iut.sciencequest.ui.theme.ScienceQuestTheme
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
fetchScientifiqueById(1)
setContent { setContent {
ScienceQuestTheme { ScienceQuestTheme {
// A surface container using the 'background' color from the theme // 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 com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import fr.iut.sciencequest.model.dto.ScientifiqueDTO import fr.iut.sciencequest.model.dto.ScientifiqueDTO
@ -11,7 +11,7 @@ import retrofit2.http.GET
import retrofit2.http.Path import retrofit2.http.Path
// a remplir // 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() val httpClient = OkHttpClient()
@ -20,7 +20,7 @@ interface ScientifiqueRequestService {
fun getScientifiques(@Path("index") index: Int, @Path("count") count: Int): Call<List<ScientifiqueDTO>> fun getScientifiques(@Path("index") index: Int, @Path("count") count: Int): Call<List<ScientifiqueDTO>>
@GET("scientifiques/{id}") @GET("scientifiques/{id}")
fun getScientifique(@Path("id") id: Int) fun getScientifique(@Path("id") id: Int): Call<ScientifiqueDTO>
} }
fun createRequestService(): Retrofit = fun createRequestService(): Retrofit =

@ -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<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 de requete api")
throw t
}
}
)
}

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