Fix getBetAnswerDetail
continuous-integration/drone/push Build is passing Details

pull/5/head
Arthur VALIN 1 year ago
parent c252415b6e
commit 340772040d

@ -19,16 +19,16 @@ data class BetDetail(
val userParticipation: Participation? // La participation du User current val userParticipation: Participation? // La participation du User current
) )
fun getBetAnswerDetail(participations: List<Participation>): List<BetAnswerDetail> { fun getBetAnswerDetail(bet: Bet, participations: List<Participation>): List<BetAnswerDetail> {
val groupedParticipations = participations.groupBy { it.answer } return bet.response.map { response ->
val betAnswerDetails = mutableListOf<BetAnswerDetail>() val responseParticipations = participations.filter { it.answer == response }
for ((answer, participationList) in groupedParticipations) { BetAnswerDetail(
val totalStakes = participationList.sumBy { it.stake } response = response,
val totalParticipants = participationList.size totalStakes = responseParticipations.sumOf { it.stake },
val highestStake = participationList.maxByOrNull { it.stake }?.stake ?: 0 totalParticipants = responseParticipations.size,
val odds = 1.0f highestStake = responseParticipations.maxOfOrNull { it.stake } ?: 0,
val betAnswerDetail = BetAnswerDetail(answer, totalStakes, totalParticipants, highestStake, odds) odds = if (participations.isEmpty()) 1f else responseParticipations.size / participations.size.toFloat()
betAnswerDetails.add(betAnswerDetail) )
} }
return betAnswerDetails
} }

@ -6,7 +6,6 @@ import allin.entities.ParticipationsEntity.getParticipationEntityFromUserId
import allin.ext.hasToken import allin.ext.hasToken
import allin.ext.verifyUserFromToken import allin.ext.verifyUserFromToken
import allin.model.BetDetail import allin.model.BetDetail
import allin.model.Participation
import allin.model.getBetAnswerDetail import allin.model.getBetAnswerDetail
import io.ktor.http.* import io.ktor.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
@ -28,9 +27,9 @@ fun Application.BetDetailRouter() {
HttpStatusCode.Accepted, HttpStatusCode.Accepted,
BetDetail( BetDetail(
selectedBet, selectedBet,
getBetAnswerDetail(participations), getBetAnswerDetail(selectedBet, participations),
participations.toList(), participations.toList(),
getParticipationEntityFromUserId(user.username,id).lastOrNull() getParticipationEntityFromUserId(user.username, id).lastOrNull()
) )
) )
} else { } else {
@ -41,5 +40,5 @@ fun Application.BetDetailRouter() {
} }
} }
} }
} }

Loading…
Cancel
Save