forked from SteamWar/SteamWar
Refactor event group management and routing system
This commit is contained in:
@@ -20,12 +20,7 @@
|
||||
package de.steamwar.routes
|
||||
|
||||
import de.steamwar.ResponseError
|
||||
import de.steamwar.data.Groups
|
||||
import de.steamwar.plugins.SWPermissionCheck
|
||||
import de.steamwar.sql.EventFight
|
||||
import de.steamwar.sql.SteamwarUser
|
||||
import de.steamwar.sql.Team
|
||||
import de.steamwar.sql.UserPerm
|
||||
import de.steamwar.sql.*
|
||||
import io.ktor.http.*
|
||||
import io.ktor.server.application.*
|
||||
import io.ktor.server.request.*
|
||||
@@ -45,7 +40,7 @@ data class ResponseEventFight(
|
||||
val start: Long,
|
||||
val ergebnis: Int,
|
||||
val spectatePort: Int?,
|
||||
val group: String?
|
||||
val group: ResponseGroups?
|
||||
) {
|
||||
constructor(eventFight: EventFight) : this(
|
||||
eventFight.fightID,
|
||||
@@ -56,7 +51,7 @@ data class ResponseEventFight(
|
||||
eventFight.startTime.time,
|
||||
eventFight.ergebnis,
|
||||
eventFight.spectatePort,
|
||||
Groups.getGroup(eventFight.fightID)?.name
|
||||
eventFight.group.orElse(null)?.let { ResponseGroups(it) }
|
||||
)
|
||||
}
|
||||
|
||||
@@ -72,7 +67,7 @@ data class UpdateEventFight(
|
||||
val start: Long? = null,
|
||||
val spielmodus: String? = null,
|
||||
val map: String? = null,
|
||||
val group: String? = null,
|
||||
val group: Int? = null,
|
||||
val spectatePort: Int? = null
|
||||
)
|
||||
|
||||
@@ -85,14 +80,14 @@ data class CreateEventFight(
|
||||
val redTeam: Int,
|
||||
val start: Long,
|
||||
val spectatePort: Int? = null,
|
||||
val group: String? = null
|
||||
val group: Int? = null
|
||||
)
|
||||
|
||||
fun Route.configureEventFightRoutes() {
|
||||
route("/fights") {
|
||||
install(SWPermissionCheck) {
|
||||
allowMethod(HttpMethod.Get)
|
||||
permission = UserPerm.MODERATION
|
||||
get {
|
||||
val event = call.receiveEvent() ?: return@get
|
||||
call.respond(EventFight.getEvent(event.eventID).map { ResponseEventFight(it) })
|
||||
}
|
||||
post {
|
||||
val fight = call.receiveNullable<CreateEventFight>()
|
||||
@@ -100,6 +95,7 @@ fun Route.configureEventFightRoutes() {
|
||||
call.respond(HttpStatusCode.BadRequest, ResponseError("Invalid body"))
|
||||
return@post
|
||||
}
|
||||
|
||||
val eventFight = EventFight.create(
|
||||
fight.event,
|
||||
Timestamp.from(Instant.ofEpochMilli(fight.start)),
|
||||
@@ -110,9 +106,7 @@ fun Route.configureEventFightRoutes() {
|
||||
fight.spectatePort
|
||||
)
|
||||
if (fight.group != null) {
|
||||
if (fight.group != "null") {
|
||||
Groups.setGroup(eventFight.fightID, fight.group)
|
||||
}
|
||||
eventFight.groupId = fight.group
|
||||
}
|
||||
call.respond(HttpStatusCode.Created, ResponseEventFight(eventFight))
|
||||
}
|
||||
@@ -133,10 +127,10 @@ fun Route.configureEventFightRoutes() {
|
||||
val spectatePort = updateFight.spectatePort ?: fight.spectatePort
|
||||
|
||||
if (updateFight.group != null) {
|
||||
if (updateFight.group == "null") {
|
||||
Groups.resetGroup(fight.fightID, true)
|
||||
if (updateFight.group == -1) {
|
||||
fight.groupId = null
|
||||
} else {
|
||||
Groups.setGroup(fight.fightID, updateFight.group)
|
||||
fight.groupId = updateFight.group
|
||||
}
|
||||
}
|
||||
fight.update(start, spielmodus, map, teamBlue, teamRed, spectatePort)
|
||||
|
||||
Reference in New Issue
Block a user