forked from SteamWar/SteamWar
Remove Event-related SQL classes and update relevant references across modules
Signed-off-by: Chaoscaot <max@maxsp.de>
This commit is contained in:
@@ -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(",")
|
||||
|
||||
Reference in New Issue
Block a user