chore: Flow version of firstOrNull

This commit is contained in:
Ahmad Ansori Palembani 2024-12-04 12:05:19 +07:00
parent 19ea7cbebd
commit 106737371f
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
6 changed files with 47 additions and 0 deletions

View file

@ -30,6 +30,9 @@ class MangaRepositoryImpl(private val handler: DatabaseHandler) : MangaRepositor
override fun getMangaListAsFlow(): Flow<List<Manga>> =
handler.subscribeToList { mangasQueries.findAll(Manga::mapper) }
override fun getMangaByUrlAndSourceAsFlow(url: String, source: Long): Flow<Manga?> =
handler.subscribeToFirstOrNull { mangasQueries.findByUrlAndSource(url, source, Manga::mapper) }
override suspend fun getLibraryManga(): List<LibraryManga> =
handler.awaitList { library_viewQueries.findAll(LibraryManga::mapper) }

View file

@ -9,6 +9,7 @@ import yokai.domain.manga.models.MangaUpdate
interface MangaRepository {
suspend fun getMangaList(): List<Manga>
suspend fun getMangaByUrlAndSource(url: String, source: Long): Manga?
fun getMangaByUrlAndSourceAsFlow(url: String, source: Long): Flow<Manga?>
suspend fun getMangaById(id: Long): Manga?
suspend fun getFavorites(): List<Manga>
suspend fun getReadNotFavorites(): List<Manga>

View file

@ -7,6 +7,7 @@ class GetManga (
) {
suspend fun awaitAll() = mangaRepository.getMangaList()
fun subscribeAll() = mangaRepository.getMangaListAsFlow()
fun subscribeByUrlAndSource(url: String, source: Long) = mangaRepository.getMangaByUrlAndSourceAsFlow(url, source)
suspend fun awaitByUrlAndSource(url: String, source: Long) = mangaRepository.getMangaByUrlAndSource(url, source)
suspend fun awaitById(id: Long) = mangaRepository.getMangaById(id)