Remove Event-related SQL classes and update relevant references across modules

Signed-off-by: Chaoscaot <max@maxsp.de>
This commit is contained in:
2025-10-30 23:14:25 +01:00
parent eea1073892
commit 4e6933f2fd
30 changed files with 679 additions and 797 deletions
@@ -44,11 +44,7 @@ data class ResponseSchematicType(val name: String, val db: String)
@Serializable
data class ResponseUser(val name: String, val uuid: String, val prefix: String, val perms: List<String>) {
constructor(user: SteamwarUser) : this(user.userName, user.uuid.toString(), user.prefix().chatPrefix, user.perms().filter { !it.name.startsWith("PREFIX_") }.map { it.name }) {
synchronized(cache) {
cache[user.getId()] = this
}
}
private constructor(user: SteamwarUser) : this(user.userName, user.uuid.toString(), user.prefix().chatPrefix, user.perms().filter { !it.name.startsWith("PREFIX_") }.map { it.name })
companion object {
private val cache = mutableMapOf<Int, ResponseUser>()
@@ -59,6 +55,10 @@ data class ResponseUser(val name: String, val uuid: String, val prefix: String,
}
}
fun get(user: SteamwarUser): ResponseUser = synchronized(cache) {
return cache[user.getId()] ?: ResponseUser(user).also { cache[user.getId()] = it }
}
fun clearCache() {
synchronized(cache) {
cache.clear()
@@ -75,7 +75,7 @@ fun Route.configureDataRoutes() {
permission = UserPerm.MODERATION
}
get("/users") {
call.respond(SteamwarUser.all().map { ResponseUser(it) })
call.respond(SteamwarUser.all().map { ResponseUser.get(it) })
}
get("/teams") {
call.respond(Team.getAll().map { ResponseTeam(it) })
@@ -118,7 +118,7 @@ fun Route.configureDataRoutes() {
listOf(UserPerm.PREFIX_ADMIN, UserPerm.PREFIX_DEVELOPER, UserPerm.PREFIX_MODERATOR, UserPerm.PREFIX_SUPPORTER, UserPerm.PREFIX_BUILDER)
.associateWith { SteamwarUser.getUsersWithPerm(it) }
.mapKeys { UserPerm.prefixes[it.key]!!.chatPrefix }
.mapValues { it.value.map { ResponseUser(it) } }
.mapValues { it.value.map { ResponseUser.get(it) } }
)
}
get("/skin/{uuid}") {
@@ -137,7 +137,7 @@ fun Route.configureDataRoutes() {
route("/me") {
install(SWPermissionCheck)
get {
call.respond(ResponseUser(call.principal<SWAuthPrincipal>()!!.user))
call.respond(ResponseUser.get(call.principal<SWAuthPrincipal>()!!.user))
}
}
}
@@ -47,8 +47,8 @@ data class ResponseEventFight(
eventFight.fightID,
eventFight.spielmodus,
eventFight.map,
ResponseTeam(Team.get(eventFight.teamBlue)),
ResponseTeam(Team.get(eventFight.teamRed)),
ResponseTeam(Team.byId(eventFight.teamBlue)),
ResponseTeam(Team.byId(eventFight.teamRed)),
eventFight.startTime.time,
eventFight.ergebnis,
eventFight.spectatePort,
@@ -162,7 +162,7 @@ suspend fun ApplicationCall.receiveFight(fieldName: String = "fight"): EventFigh
return null
}
val fight = EventFight.get(fightId)
val fight = EventFight.byId(fightId)
if (fight == null) {
respond(HttpStatusCode.NotFound, ResponseError("Fight not found"))
return null
@@ -66,7 +66,7 @@ fun Route.configureEventGroups() {
val pointsPerLoss = updateEventGroup.pointsPerLoss ?: group.pointsPerLoss
val pointsPerDraw = updateEventGroup.pointsPerDraw ?: group.pointsPerDraw
group.update(name, type, pointsPerWin, pointsPerLoss, pointsPerDraw)
call.respond(ResponseGroups(EventGroup.get(group.id).orElse(null) ?: return@put))
call.respond(ResponseGroups(EventGroup.byId(group.getId()).orElse(null) ?: return@put))
}
delete {
val group = call.receiveEventGroup() ?: return@delete
@@ -84,7 +84,7 @@ suspend fun ApplicationCall.receiveEventGroup(): EventGroup? {
return null
}
val group = EventGroup.get(groupId).orElse(null)
val group = EventGroup.byId(groupId).orElse(null)
if (group == null) {
respond(HttpStatusCode.NotFound)
return null
@@ -31,7 +31,7 @@ fun Route.configureEventRefereesRouting() {
route("/referees") {
get {
val event = call.receiveEvent() ?: return@get
call.respond(Referee.get(event.eventID).map { ResponseUser(SteamwarUser.byId(it)!!) })
call.respond(Referee.get(event.eventID).map { ResponseUser.get(SteamwarUser.byId(it)!!) })
}
put {
val event = call.receiveEvent() ?: return@put
@@ -39,7 +39,7 @@ fun Route.configureEventRefereesRouting() {
referees.forEach {
Referee.add(event.eventID, SteamwarUser.get(UUID.fromString(it))!!.getId())
}
call.respond(Referee.get(event.eventID).map { ResponseUser(SteamwarUser.byId(it)!!) })
call.respond(Referee.get(event.eventID).map { ResponseUser.get(SteamwarUser.byId(it)!!) })
}
delete {
val event = call.receiveEvent() ?: return@delete
@@ -47,7 +47,7 @@ fun Route.configureEventRefereesRouting() {
referees.forEach {
Referee.remove(event.eventID, SteamwarUser.get(UUID.fromString(it))!!.getId())
}
call.respond(Referee.get(event.eventID).map { ResponseUser(SteamwarUser.byId(it)!!) })
call.respond(Referee.get(event.eventID).map { ResponseUser.get(SteamwarUser.byId(it)!!) })
}
}
}
@@ -48,11 +48,11 @@ fun Route.configureEventRelations() {
post {
val create = call.receive<CreateEventRelation>()
val fight = EventFight.get(create.fightId) ?: return@post call.respond(HttpStatusCode.NotFound)
val fight = EventFight.byId(create.fightId) ?: return@post call.respond(HttpStatusCode.NotFound)
when (create.fromType) {
EventRelation.FromType.FIGHT -> EventFight.get(create.fromId) ?: return@post call.respond(HttpStatusCode.BadRequest)
EventRelation.FromType.GROUP -> EventGroup.get(create.fromId) ?: return@post call.respond(HttpStatusCode.BadRequest)
EventRelation.FromType.FIGHT -> EventFight.byId(create.fromId) ?: return@post call.respond(HttpStatusCode.BadRequest)
EventRelation.FromType.GROUP -> EventGroup.byId(create.fromId) ?: return@post call.respond(HttpStatusCode.BadRequest)
}
val relation = EventRelation.create(fight, create.team, create.fromType, create.fromId, create.fromPlace)
@@ -70,10 +70,10 @@ fun Route.configureEventRelations() {
update.from?.let {
when(it.fromType) {
EventRelation.FromType.FIGHT -> relation.setFromFight(EventFight.get(it.fromId) ?: return@put call.respond(HttpStatusCode.BadRequest),
EventRelation.FromType.FIGHT -> relation.setFromFight(EventFight.byId(it.fromId) ?: return@put call.respond(HttpStatusCode.BadRequest),
it.fromPlace
)
EventRelation.FromType.GROUP -> relation.setFromGroup(EventGroup.get(it.fromId).orElse(null) ?: return@put call.respond(HttpStatusCode.BadRequest),
EventRelation.FromType.GROUP -> relation.setFromGroup(EventGroup.byId(it.fromId).orElse(null) ?: return@put call.respond(HttpStatusCode.BadRequest),
it.fromPlace
)
}
@@ -99,7 +99,7 @@ suspend fun ApplicationCall.receiveEventRelation(): EventRelation? {
return null
}
val relation = EventRelation.get(relationId)
val relation = EventRelation.byId(relationId)
if (relation == null) {
respond(HttpStatusCode.NotFound)
return null
@@ -51,7 +51,7 @@ data class ResponseGroups(
val points: Map<Int, Int>
) {
constructor(group: EventGroup, short: Boolean = false) : this(
group.id,
group.getId(),
group.name,
group.pointsPerWin,
group.pointsPerLoss,
@@ -71,12 +71,12 @@ data class ResponseRelation(
val fromPlace: Int
) {
constructor(relation: EventRelation) : this(
relation.id,
relation.getId(),
relation.fightId,
relation.fightTeam,
relation.fromType,
relation.fromFight.map { ResponseEventFight(it) }.orElse(null),
relation.fromGroup.map { ResponseGroups(it) }.orElse(null),
relation.fromFight?.let { ResponseEventFight(it) },
relation.fromGroup?.let { ResponseGroups(it) },
relation.fromPlace
)
}
@@ -118,7 +118,7 @@ data class ExtendedResponseEvent(
TeamTeilnahme.getTeams(event.eventID).map { ResponseTeam(it) },
EventGroup.get(event).map { ResponseGroups(it) },
EventFight.getEvent(event.eventID).map { ResponseEventFight(it) },
Referee.get(event.eventID).map { ResponseUser(SteamwarUser.byId(it)!!) },
Referee.get(event.eventID).map { ResponseUser.get(SteamwarUser.byId(it)!!) },
EventRelation.get(event).map { ResponseRelation(it) }
)
}
@@ -176,8 +176,8 @@ fun Route.configureEventsRoute() {
csv.append(arrayOf("Start", "BlueTeam", "RedTeam", "WinnerTeam", "Group").joinToString(","))
fights.forEach {
csv.appendLine()
val blue = Team.get(it.teamBlue)
val red = Team.get(it.teamRed)
val blue = Team.byId(it.teamBlue)
val red = Team.byId(it.teamRed)
val winner = when (it.ergebnis) {
1 -> blue.teamName
2 -> red.teamName
@@ -187,8 +187,8 @@ fun Route.configureEventsRoute() {
csv.append(
arrayOf(
it.startTime.toString(),
Team.get(it.teamBlue).teamName,
Team.get(it.teamRed).teamName,
Team.byId(it.teamBlue).teamName,
Team.byId(it.teamRed).teamName,
winner,
it.group.map { it.name }.orElse("Ungrouped")
).joinToString(",")