diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/question/QuestionAPIRepository.kt b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/question/QuestionAPIRepository.kt index 2009019..45b69c5 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/question/QuestionAPIRepository.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/question/QuestionAPIRepository.kt @@ -21,11 +21,6 @@ class QuestionAPIRepository : IQuestionRepository { get() = _questions.asStateFlow() override suspend fun fetchQuestions(index: Int) { - //1. appel à l'api QuestionRequestService - //2. fill _questions with QuestionRequestService response -// _questions.update { -// -// } val serviceClient = createRequestService().create() try { _questions.value = serviceClient.getQuestions(index).questions.ToModel() diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/IScientifiqueRepository.kt b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/IScientifiqueRepository.kt index f99b056..b99473f 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/IScientifiqueRepository.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/IScientifiqueRepository.kt @@ -1,9 +1,14 @@ package fr.iut.sciencequest.model.repositories.scientifique import fr.iut.sciencequest.model.metier.Scientifique +import fr.iut.sciencequest.model.metier.question.QuestionWithSimpleReponse import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.StateFlow interface IScientifiqueRepository { - suspend fun fetchScientifiques(index: Int): Flow> - suspend fun fetchScientifiqueById(id: Int): Flow + + val scientifique: StateFlow + val scientifiques: StateFlow> + suspend fun fetchScientifiques(index: Int) + suspend fun fetchScientifiqueById(id: Int) } \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueAPIRepository.kt b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueAPIRepository.kt index 746e1af..85a5b2a 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueAPIRepository.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueAPIRepository.kt @@ -1,32 +1,44 @@ package fr.iut.sciencequest.model.repositories.scientifique import android.util.Log +import fr.iut.sciencequest.model.buisness.Question.QuestionRequestService import fr.iut.sciencequest.model.buisness.Scientifique.ScientifiqueRequestService import fr.iut.sciencequest.model.buisness.createRequestService import fr.iut.sciencequest.model.dto.extensions.ToModel import fr.iut.sciencequest.model.metier.Scientifique +import fr.iut.sciencequest.stub.StubScientifique1 import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.flow import retrofit2.create class ScientifiqueAPIRepository: IScientifiqueRepository { - suspend override fun fetchScientifiqueById(id: Int): Flow = flow { + + private val _scientifique = MutableStateFlow(StubScientifique1.ToModel()) + override val scientifique: StateFlow + get() = _scientifique.asStateFlow() + + private val _scientifiques = MutableStateFlow>(emptyList()) + override val scientifiques: StateFlow> + get() = _scientifiques.asStateFlow() + + override suspend fun fetchScientifiqueById(id: Int) { val serviceClient = createRequestService().create() try { - val response = serviceClient.getScientifique(id) - emit(response.ToModel()) + _scientifique.value = serviceClient.getScientifique(id).ToModel() } catch (e: Exception) { - Log.e("Requete API",e.message.toString()) + Log.e("Requete API Scientifiqu", e.message.toString()) } } - suspend override fun fetchScientifiques(index: Int): Flow> = flow { + override suspend fun fetchScientifiques(index: Int) { val serviceClient = createRequestService().create() try { - val response = serviceClient.getScientifiques(index) - emit(response.scientifiques.ToModel()) + _scientifiques.value = serviceClient.getScientifiques(index).scientifiques.ToModel() } catch (e: Exception) { - Log.e("Requete API",e.message.toString()) + Log.e("Requete API Scientifiqu", e.message.toString()) } } } \ No newline at end of file diff --git a/android/app/src/main/java/fr/iut/sciencequest/viewModels/PenduViewModel.kt b/android/app/src/main/java/fr/iut/sciencequest/viewModels/PenduViewModel.kt index 079e6b8..9b859c8 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/viewModels/PenduViewModel.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/viewModels/PenduViewModel.kt @@ -18,8 +18,9 @@ class PenduViewModel( fun InitPartie() { Log.d("PenduViewModel","Un utilisateur initialise une partie") viewModelScope.launch { - scientifiqueRepo.fetchScientifiqueById(1).collect { - val nomComplet = it.prenom + " " + it.nom + scientifiqueRepo.fetchScientifiqueById(1) + val scientifique = scientifiqueRepo.scientifique.value + val nomComplet = scientifique.prenom + " " + scientifique.nom Log.d("ViewModelPendu",nomComplet) var motATrou = "" for (chr in nomComplet) { @@ -36,7 +37,6 @@ class PenduViewModel( ) } } - } // mot : mot à trouver // motAct : état actuel du mot trouvé par l'utilisateur diff --git a/android/app/src/main/java/fr/iut/sciencequest/viewModels/ScientifiquesDecouvertsVM.kt b/android/app/src/main/java/fr/iut/sciencequest/viewModels/ScientifiquesDecouvertsVM.kt index 2a45f3c..ef1648f 100644 --- a/android/app/src/main/java/fr/iut/sciencequest/viewModels/ScientifiquesDecouvertsVM.kt +++ b/android/app/src/main/java/fr/iut/sciencequest/viewModels/ScientifiquesDecouvertsVM.kt @@ -20,9 +20,8 @@ class ScientifiquesDecouvertsVM( fun getScientifiques(page: Int) { Log.d("ViewModelScientifique","Recup la liste de scientifiques") viewModelScope.launch { - repository.fetchScientifiques(page).collect { - _listeScientifique.value = ScientifiqueDecouvertsUIState(it.toMutableList()) - } + repository.fetchScientifiques(page) + _listeScientifique.value = ScientifiqueDecouvertsUIState(repository.scientifiques.value.toMutableList()) } } companion object {