[FIX] Requete page de scientifique + changement DTO

RepositoryAndroid
Renaud BEURET 1 year ago
parent ba13a6477f
commit feeae3874d

@ -1,7 +1,8 @@
package fr.iut.sciencequest.model.buisness 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.ScientifiqueDTOs.ScientifiqueDTO
import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueListDTO
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.MediaType import okhttp3.MediaType
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -9,6 +10,7 @@ import retrofit2.Call
import retrofit2.Retrofit import retrofit2.Retrofit
import retrofit2.http.GET import retrofit2.http.GET
import retrofit2.http.Path import retrofit2.http.Path
import retrofit2.http.Query
// a remplir // a remplir
private const val API_BASE_URL = "https://sae-java.alix-jdlm.fr/api/v1/" private const val API_BASE_URL = "https://sae-java.alix-jdlm.fr/api/v1/"
@ -16,8 +18,8 @@ private const val API_BASE_URL = "https://sae-java.alix-jdlm.fr/api/v1/"
val httpClient = OkHttpClient() val httpClient = OkHttpClient()
interface ScientifiqueRequestService { interface ScientifiqueRequestService {
@GET("scientifiques/{index}/{count}") @GET("scientifiques?page")
fun getScientifiques(@Path("index") index: Int, @Path("count") count: Int): Call<List<ScientifiqueDTO>> fun getScientifiques(@Query("page") index: Int): Call<ScientifiqueListDTO>
@GET("scientifiques/{id}") @GET("scientifiques/{id}")
fun getScientifique(@Path("id") id: Int): Call<ScientifiqueDTO> fun getScientifique(@Path("id") id: Int): Call<ScientifiqueDTO>

@ -1,13 +1,8 @@
package fr.iut.sciencequest.model.buisness package fr.iut.sciencequest.model.buisness
import android.util.Log import android.util.Log
import androidx.lifecycle.ViewModel import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueDTO
import androidx.lifecycle.ViewModelLazy import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueListDTO
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.lifecycle.viewmodel.compose.viewModel
import fr.iut.sciencequest.ViewModels.ScientifiquesDecouvertsVM
import fr.iut.sciencequest.model.dto.ScientifiqueDTO
import retrofit2.Call import retrofit2.Call
import retrofit2.Callback import retrofit2.Callback
import retrofit2.Response import retrofit2.Response
@ -42,14 +37,14 @@ fun fetchScientifiqueById(id: Int) {
) )
} }
fun fetchScientifiquesById(index: Int, count: Int) { fun fetchScientifiques(index: Int) {
val serviceClient = createRequestService().create<ScientifiqueRequestService>() val serviceClient = createRequestService().create<ScientifiqueRequestService>()
Log.d("Requete API","Fetch plusieurs scientifiques") Log.d("Requete API","Fetch plusieurs scientifiques")
serviceClient.getScientifiques(index, count).enqueue( serviceClient.getScientifiques(index).enqueue(
object: Callback<List<ScientifiqueDTO>> { object: Callback<ScientifiqueListDTO> {
override fun onResponse( override fun onResponse(
call: Call<List<ScientifiqueDTO>>, call: Call<ScientifiqueListDTO>,
response: Response<List<ScientifiqueDTO>> response: Response<ScientifiqueListDTO>
) { ) {
// NOTE : il faudrait probablement utiliser une autre exception // NOTE : il faudrait probablement utiliser une autre exception
// exception personnalisée ? // exception personnalisée ?
@ -58,14 +53,14 @@ fun fetchScientifiquesById(index: Int, count: Int) {
// Devrait appeler le ModelView, la méthode onResponse ne renvoit rien // Devrait appeler le ModelView, la méthode onResponse ne renvoit rien
// Pour le moment des print pour vérifier que la requêtre fonctionne // Pour le moment des print pour vérifier que la requêtre fonctionne
// sans avoir besoin des vues. // sans avoir besoin des vues.
for (scientifique in data) { for (scientifique in data.scientifiques) {
Log.d("Requete API",scientifique.id.toString()) Log.d("Requete API",scientifique.id.toString())
Log.d("Requete API", scientifique.nom) Log.d("Requete API", scientifique.nom)
} }
} }
override fun onFailure(call: Call<List<ScientifiqueDTO>>, t: Throwable) { override fun onFailure(call: Call<ScientifiqueListDTO>, t: Throwable) {
Log.e("Requete API","Erreur lors d'une requete api") Log.e("Requete API","Erreur lors d'une requete api")
throw t throw t
} }

Loading…
Cancel
Save