[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
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,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<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,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")
val ratioTrouve: Float,
val sexe: Char,
val difficulte: DifficulteDTO
val difficulteId: Int,
val thematiqueId: Int
)
Loading…
Cancel
Save