Skip to content

Commit

Permalink
GH-458 Sort registered routes by length to match proper handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
dzikoysk committed Jul 3, 2021
1 parent d5921fe commit 4563ddc
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ internal class FrontendHandler(private val frontendFacade: FrontendFacade) : Rou

@OpenApi(
path = ROUTE,
methods = [HttpMethod.GET],
methods = [ HttpMethod.GET ],
operationId = "frontend",
summary = "Get frontend application",
description = "Returns Vue.js application wrapped into one app.js file",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,27 @@ internal class JavalinWebServer : WebServer {

ReposiliteWebConfiguration.javalin(reposilite, javalin)

ReposiliteWebConfiguration.routing(reposilite).forEach { handler ->
handler.methods.forEach { method ->
when (method) {
HEAD -> javalin.head(handler.route, handler)
GET -> javalin.get(handler.route, handler)
PUT -> javalin.put(handler.route, handler)
POST -> javalin.post(handler.route, handler)
DELETE -> javalin.delete(handler.route, handler)
AFTER -> javalin.after(handler.route, handler)
BEFORE -> javalin.before(handler.route, handler)
ReposiliteWebConfiguration.routing(reposilite)
.sortedByDescending { it.route.length }
.forEach { handler ->
handler.methods.forEach { method ->
when (method) {
HEAD -> javalin.head(handler.route, handler)
GET -> javalin.get(handler.route, handler)
PUT -> javalin.put(handler.route, handler)
POST -> javalin.post(handler.route, handler)
DELETE -> javalin.delete(handler.route, handler)
AFTER -> javalin.after(handler.route, handler)
BEFORE -> javalin.before(handler.route, handler)
}
}
}
}

if (!servlet) {
javalin?.start(configuration.hostname, configuration.port)
}
}


private fun create(reposilite: Reposilite, configuration: Configuration): Javalin =
if (servlet) {
Javalin.createStandalone { configure(reposilite, configuration, it) }
Expand All @@ -71,7 +72,8 @@ internal class JavalinWebServer : WebServer {
private fun configure(reposilite: Reposilite, configuration: Configuration, config: JavalinConfig) {
val server = Server()

configureJsonSerialization()
configureJavalin(config)
configureJsonSerialization(config)
configureSSL(reposilite, configuration, config, server)
configureCors(config)
configureOpenApi(configuration, config)
Expand All @@ -80,7 +82,11 @@ internal class JavalinWebServer : WebServer {
config.server { server }
}

private fun configureJsonSerialization() {
private fun configureJavalin(config: JavalinConfig) {
config.showJavalinBanner = false
}

private fun configureJsonSerialization(config: JavalinConfig) {
val objectMapper = ObjectMapper()
objectMapper.setSerializationInclusion(Include.NON_NULL)
JavalinJackson.configure(objectMapper)
Expand Down
6 changes: 3 additions & 3 deletions reposilite-backend/src/main/resources/tinylog.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
#

# suppress inspection "UnusedProperty" for whole file
[email protected]=warn
[email protected]=warn
[email protected]=info
[email protected]=debug

writerActive=console
writerActive.stream=out
writerActive.level=info
writerActive.level=debug
writerActive.format={date: HH:mm:ss.SSS} {level} | {message}

writerFile=file
Expand Down

0 comments on commit 4563ddc

Please sign in to comment.