Add rating date tootip, and avoid registering twice a player

This commit is contained in:
Claude Brisson
2024-03-15 15:13:24 +01:00
parent 3e3c3ad2c4
commit 419d41be4c
9 changed files with 41 additions and 6 deletions

View File

@@ -23,6 +23,9 @@ object PlayerHandler: PairgothApiHandler {
val tournament = getTournament(request)
val payload = getObjectPayload(request)
val player = Player.fromJson(payload)
player.externalIds.forEach { dbId, pId ->
if (tournament.hasPlayer(dbId, pId)) badRequest("player already registered")
}
tournament.players[player.id] = player
tournament.dispatchEvent(PlayerAdded, request, player.toJson())
return Json.Object("success" to true, "id" to player.id)

View File

@@ -119,6 +119,7 @@ sealed class Tournament <P: Pairable>(
}
fun pairedPlayers() = games.flatMap { it.values }.flatMap { listOf(it.black, it.white) }.toSet()
fun hasPlayer(dbId: DatabaseId, pId: String) = players.values.filter { player -> pId == player.externalIds[dbId] }.isNotEmpty()
}
// standard tournament of individuals