Add EventCache for efficient retrieval of event groups and teams

Signed-off-by: Chaoscaot <max@maxsp.de>
This commit is contained in:
2025-11-14 22:47:27 +01:00
parent f9cb712b07
commit 8b4f864f99
3 changed files with 84 additions and 9 deletions
@@ -20,6 +20,7 @@
package de.steamwar.routes
import de.steamwar.ResponseError
import de.steamwar.data.EventCache
import de.steamwar.plugins.SWPermissionCheck
import de.steamwar.sql.*
import de.steamwar.sql.EventGroup.EventGroupType
@@ -113,10 +114,10 @@ data class ExtendedResponseEvent(
val referees: List<ResponseUser>,
val relations: List<ResponseRelation>
) {
constructor(event: Event) : this(
constructor(event: Event, cache: EventCache = EventCache()) : this(
ResponseEvent(event),
TeamTeilnahme.getTeams(event.eventID).map { ResponseTeam(it) },
EventGroup.get(event).map { ResponseGroups(it) },
TeamTeilnahme.getTeams(event.eventID).map { cache.convertTeam(it) },
EventGroup.get(event).map { cache.convertGroup(it) },
EventFight.getEvent(event.eventID).map { ResponseEventFight(it) },
Referee.get(event.eventID).map { ResponseUser.get(SteamwarUser.byId(it)!!) },
EventRelation.get(event).map { ResponseRelation(it) }