53 lines
1.2 KiB
Kotlin
53 lines
1.2 KiB
Kotlin
package de.pheerai.buzzer.routing
|
|
|
|
import de.pheerai.buzzer.clients.createGameModeratorDocument
|
|
import de.pheerai.buzzer.clients.createPlayerDocument
|
|
import de.pheerai.buzzer.handlers.handleGameModeratorSocket
|
|
import de.pheerai.buzzer.handlers.handlePlayerSocket
|
|
import io.ktor.server.application.*
|
|
import io.ktor.server.html.*
|
|
import io.ktor.server.http.content.*
|
|
import io.ktor.server.routing.*
|
|
import io.ktor.server.websocket.*
|
|
import org.slf4j.Logger
|
|
|
|
fun Application.configureRoutes() {
|
|
routing {
|
|
assetRoutes()
|
|
clientRoutes()
|
|
websocketRoutes(this@configureRoutes.log)
|
|
}
|
|
}
|
|
|
|
private fun Routing.websocketRoutes(log: Logger) {
|
|
webSocket("/socket/player") { handlePlayerSocket(log) }
|
|
webSocket("/socket/moderator") { handleGameModeratorSocket(log) }
|
|
}
|
|
|
|
private fun Routing.clientRoutes() {
|
|
get("/") {
|
|
call.respondHtml {
|
|
createPlayerDocument()
|
|
}
|
|
}
|
|
|
|
get("/client/player") {
|
|
call.respondHtml {
|
|
createPlayerDocument()
|
|
}
|
|
}
|
|
|
|
get("/client/moderator") {
|
|
call.respondHtml {
|
|
createGameModeratorDocument()
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun Routing.assetRoutes() {
|
|
static("/assets") {
|
|
resources("css")
|
|
resources("js")
|
|
}
|
|
}
|