From 2b612a66708af98a5d5f8f564d4f8ca2aba3b57a Mon Sep 17 00:00:00 2001 From: ludelanier Date: Thu, 16 May 2024 18:54:47 +0200 Subject: [PATCH] update mock data source --- .../allin/data/mock/MockBetDataSource.kt | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt b/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt index 117605a..123768b 100644 --- a/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt +++ b/Sources/src/main/kotlin/allin/data/mock/MockBetDataSource.kt @@ -16,23 +16,39 @@ class MockBetDataSource(private val mockData: MockDataSource.MockData) : BetData private val answerInfos get() = mockData.answerInfos override fun getAllBets(filters: List): List { - return bets.filter { bet -> - val public = filters.contains(BetFilter.PUBLIC) && - !bet.isPrivate - - val invitation = filters.contains(BetFilter.INVITATION) && - bet.isPrivate - - val finished = filters.contains(BetFilter.FINISHED) && - bet.status in listOf(FINISHED, CANCELLED) - - val inProgress = filters.contains(BetFilter.IN_PROGRESS) && - bet.status in listOf(IN_PROGRESS, WAITING, CLOSING) - - - (public || invitation) && (finished || inProgress) + return when { + filters.isEmpty() -> bets + + filters.size == 1 -> { + val filter = filters[0] + + when (filter) { + BetFilter.PUBLIC -> bets.filter { !it.isPrivate } + BetFilter.INVITATION -> bets.filter { it.isPrivate } + BetFilter.FINISHED -> bets.filter { it.status == FINISHED } + BetFilter.IN_PROGRESS -> bets.filter { + it.status in listOf(IN_PROGRESS, WAITING, CLOSING) + } + }.map { it } + } + else -> { + bets.filter { bet -> + val public = (BetFilter.PUBLIC in filters) && !bet.isPrivate + val invitation = (BetFilter.INVITATION in filters) && bet.isPrivate + val finished = + (BetFilter.FINISHED in filters) and ((bet.status == FINISHED) or (bet.status == CANCELLED)) + val inProgress = (BetFilter.IN_PROGRESS in filters) and (bet.status in listOf( + IN_PROGRESS, + WAITING, + CLOSING + )) + + (public || invitation) && (finished or inProgress) + }.map { it } + } } + } override fun getBetById(id: String): Bet? =