From a69a20684452570a88b85fa4a6af5e0046099071 Mon Sep 17 00:00:00 2001 From: Renaud BEURET Date: Tue, 2 Apr 2024 17:24:11 +0200 Subject: [PATCH] [ADD] Scientifique Stub Repo --- .../scientifique/ScientifiqueAPIRepository.kt | 2 +- .../scientifique/ScientifiqueStubRepostory.kt | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueStubRepostory.kt 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 85a5b2a..52e9a65 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 @@ -16,7 +16,7 @@ import retrofit2.create class ScientifiqueAPIRepository: IScientifiqueRepository { - private val _scientifique = MutableStateFlow(StubScientifique1.ToModel()) + private val _scientifique = MutableStateFlow(StubScientifique1.ToModel()) override val scientifique: StateFlow get() = _scientifique.asStateFlow() diff --git a/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueStubRepostory.kt b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueStubRepostory.kt new file mode 100644 index 0000000..65226a5 --- /dev/null +++ b/android/app/src/main/java/fr/iut/sciencequest/model/repositories/scientifique/ScientifiqueStubRepostory.kt @@ -0,0 +1,39 @@ +package fr.iut.sciencequest.model.repositories.scientifique + +import android.content.res.Resources.NotFoundException +import fr.iut.sciencequest.model.dto.extensions.ToModel +import fr.iut.sciencequest.model.metier.Scientifique +import fr.iut.sciencequest.stub.StubScientifique1 +import fr.iut.sciencequest.stub.StubScientifique2 +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow + +class ScientifiqueStubRepostory : IScientifiqueRepository { + + private var listeStub : MutableList = mutableListOf( + StubScientifique1.ToModel(), + StubScientifique2.ToModel() + ) + 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 fetchScientifiques(index: Int) { + _scientifiques.value = listeStub + } + + override suspend fun fetchScientifiqueById(id: Int) { + val retrieved = listeStub.find { + it.id == id + } ?: throw NotFoundException("Scientifique introuvable dans le stub") + _scientifique.value = retrieved + } + + fun setScientifiqueStubList(scientifiques: MutableList) { + listeStub = scientifiques + } +} \ No newline at end of file