|
|
@ -4,67 +4,29 @@ import android.util.Log
|
|
|
|
import fr.iut.sciencequest.model.buisness.createRequestService
|
|
|
|
import fr.iut.sciencequest.model.buisness.createRequestService
|
|
|
|
import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueDTO
|
|
|
|
import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueDTO
|
|
|
|
import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueListDTO
|
|
|
|
import fr.iut.sciencequest.model.dto.ScientifiqueDTOs.ScientifiqueListDTO
|
|
|
|
|
|
|
|
import kotlinx.coroutines.flow.flow
|
|
|
|
import retrofit2.Call
|
|
|
|
import retrofit2.Call
|
|
|
|
import retrofit2.Callback
|
|
|
|
import retrofit2.Callback
|
|
|
|
import retrofit2.Response
|
|
|
|
import retrofit2.Response
|
|
|
|
import retrofit2.create
|
|
|
|
import retrofit2.create
|
|
|
|
import java.lang.IllegalArgumentException
|
|
|
|
import java.lang.IllegalArgumentException
|
|
|
|
|
|
|
|
|
|
|
|
fun fetchScientifiqueById(id: Int) {
|
|
|
|
suspend fun fetchScientifiqueById(id: Int) = flow {
|
|
|
|
val serviceClient = createRequestService().create<ScientifiqueRequestService>()
|
|
|
|
val serviceClient = createRequestService().create<ScientifiqueRequestService>()
|
|
|
|
Log.d("Requete API","Fetch un scientifique")
|
|
|
|
try {
|
|
|
|
serviceClient.getScientifique(id).enqueue(
|
|
|
|
val response = serviceClient.getScientifique(id)
|
|
|
|
object: Callback<ScientifiqueDTO> {
|
|
|
|
emit(response)
|
|
|
|
override fun onResponse(
|
|
|
|
} catch (e: Exception) {
|
|
|
|
call: Call<ScientifiqueDTO>,
|
|
|
|
Log.e("Requete API",e.message.toString())
|
|
|
|
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 fetchScientifiques(index: Int) {
|
|
|
|
fun fetchScientifiques(index: Int) = flow {
|
|
|
|
val serviceClient = createRequestService().create<ScientifiqueRequestService>()
|
|
|
|
val serviceClient = createRequestService().create<ScientifiqueRequestService>()
|
|
|
|
Log.d("Requete API","Fetch plusieurs scientifiques")
|
|
|
|
try {
|
|
|
|
serviceClient.getScientifiques(index).enqueue(
|
|
|
|
val response = serviceClient.getScientifiques(index)
|
|
|
|
object: Callback<ScientifiqueListDTO> {
|
|
|
|
emit(response)
|
|
|
|
override fun onResponse(
|
|
|
|
} catch (e: Exception) {
|
|
|
|
call: Call<ScientifiqueListDTO>,
|
|
|
|
Log.e("Requete API",e.message.toString())
|
|
|
|
response: Response<ScientifiqueListDTO>
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
// 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.scientifiques) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Log.d("Requete API",scientifique.id.toString())
|
|
|
|
|
|
|
|
Log.d("Requete API", scientifique.nom)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onFailure(call: Call<ScientifiqueListDTO>, t: Throwable) {
|
|
|
|
|
|
|
|
Log.e("Requete API","Erreur lors d'une requete api")
|
|
|
|
|
|
|
|
throw t
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|