|
|
@ -16,23 +16,39 @@ class MockBetDataSource(private val mockData: MockDataSource.MockData) : BetData
|
|
|
|
private val answerInfos get() = mockData.answerInfos
|
|
|
|
private val answerInfos get() = mockData.answerInfos
|
|
|
|
|
|
|
|
|
|
|
|
override fun getAllBets(filters: List<BetFilter>): List<Bet> {
|
|
|
|
override fun getAllBets(filters: List<BetFilter>): List<Bet> {
|
|
|
|
return bets.filter { bet ->
|
|
|
|
return when {
|
|
|
|
val public = filters.contains(BetFilter.PUBLIC) &&
|
|
|
|
filters.isEmpty() -> bets
|
|
|
|
!bet.isPrivate
|
|
|
|
|
|
|
|
|
|
|
|
filters.size == 1 -> {
|
|
|
|
val invitation = filters.contains(BetFilter.INVITATION) &&
|
|
|
|
val filter = filters[0]
|
|
|
|
bet.isPrivate
|
|
|
|
|
|
|
|
|
|
|
|
when (filter) {
|
|
|
|
val finished = filters.contains(BetFilter.FINISHED) &&
|
|
|
|
BetFilter.PUBLIC -> bets.filter { !it.isPrivate }
|
|
|
|
bet.status in listOf(FINISHED, CANCELLED)
|
|
|
|
BetFilter.INVITATION -> bets.filter { it.isPrivate }
|
|
|
|
|
|
|
|
BetFilter.FINISHED -> bets.filter { it.status == FINISHED }
|
|
|
|
val inProgress = filters.contains(BetFilter.IN_PROGRESS) &&
|
|
|
|
BetFilter.IN_PROGRESS -> bets.filter {
|
|
|
|
bet.status in listOf(IN_PROGRESS, WAITING, CLOSING)
|
|
|
|
it.status in listOf(IN_PROGRESS, WAITING, CLOSING)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}.map { it }
|
|
|
|
(public || invitation) && (finished || inProgress)
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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? =
|
|
|
|
override fun getBetById(id: String): Bet? =
|
|
|
|