From 5434c5912969d9089a6656fb2bda3be90e1e4f1d Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Tue, 27 Feb 2024 14:03:35 +0100 Subject: [PATCH] add ktlint to project --- build.gradle.kts | 2 ++ .../kotlin/io/github/flecomte/Application.kt | 12 +++++--- .../kotlin/io/github/flecomte/plugins/HTTP.kt | 8 +++-- .../io/github/flecomte/plugins/Routing.kt | 20 ++++++++----- .../io/github/flecomte/plugins/Security.kt | 22 +++++++++----- .../github/flecomte/plugins/Serialization.kt | 13 ++++---- .../io/github/flecomte/plugins/Sockets.kt | 15 +++++++--- .../io/github/flecomte/ApplicationTest.kt | 30 ++++++++++--------- 8 files changed, 77 insertions(+), 45 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index cd8595d..ee66b1a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,4 @@ +@Suppress("ktlint:standard:property-naming") val ktor_version: String by project val kotlin_version: String by project val logback_version: String by project @@ -6,6 +7,7 @@ plugins { kotlin("jvm") version "1.9.22" id("io.ktor.plugin") version "2.3.8" id("org.jetbrains.kotlin.plugin.serialization") version "1.9.22" + id("org.jlleitschuh.gradle.ktlint") version "12.1.0" } group = "io.github.flecomte" diff --git a/src/main/kotlin/io/github/flecomte/Application.kt b/src/main/kotlin/io/github/flecomte/Application.kt index 7b1f195..5d89149 100644 --- a/src/main/kotlin/io/github/flecomte/Application.kt +++ b/src/main/kotlin/io/github/flecomte/Application.kt @@ -1,9 +1,13 @@ package io.github.flecomte -import io.github.flecomte.plugins.* -import io.ktor.server.application.* -import io.ktor.server.engine.* -import io.ktor.server.netty.* +import io.github.flecomte.plugins.configureHTTP +import io.github.flecomte.plugins.configureRouting +import io.github.flecomte.plugins.configureSecurity +import io.github.flecomte.plugins.configureSerialization +import io.github.flecomte.plugins.configureSockets +import io.ktor.server.application.Application +import io.ktor.server.engine.embeddedServer +import io.ktor.server.netty.Netty fun main() { embeddedServer(Netty, port = 8080, host = "0.0.0.0", module = Application::module) diff --git a/src/main/kotlin/io/github/flecomte/plugins/HTTP.kt b/src/main/kotlin/io/github/flecomte/plugins/HTTP.kt index aaa6cb7..7c1d89e 100644 --- a/src/main/kotlin/io/github/flecomte/plugins/HTTP.kt +++ b/src/main/kotlin/io/github/flecomte/plugins/HTTP.kt @@ -1,8 +1,10 @@ package io.github.flecomte.plugins -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.plugins.cors.routing.* +import io.ktor.http.HttpHeaders +import io.ktor.http.HttpMethod +import io.ktor.server.application.Application +import io.ktor.server.application.install +import io.ktor.server.plugins.cors.routing.CORS fun Application.configureHTTP() { install(CORS) { diff --git a/src/main/kotlin/io/github/flecomte/plugins/Routing.kt b/src/main/kotlin/io/github/flecomte/plugins/Routing.kt index 672ff0f..179939e 100644 --- a/src/main/kotlin/io/github/flecomte/plugins/Routing.kt +++ b/src/main/kotlin/io/github/flecomte/plugins/Routing.kt @@ -1,14 +1,18 @@ package io.github.flecomte.plugins -import io.ktor.http.* -import io.ktor.resources.* -import io.ktor.server.application.* -import io.ktor.server.plugins.autohead.* -import io.ktor.server.plugins.statuspages.* -import io.ktor.server.resources.* +import io.ktor.http.HttpStatusCode +import io.ktor.resources.Resource +import io.ktor.server.application.Application +import io.ktor.server.application.call +import io.ktor.server.application.install +import io.ktor.server.plugins.autohead.AutoHeadResponse +import io.ktor.server.plugins.statuspages.StatusPages import io.ktor.server.resources.Resources -import io.ktor.server.response.* -import io.ktor.server.routing.* +import io.ktor.server.resources.get +import io.ktor.server.response.respond +import io.ktor.server.response.respondText +import io.ktor.server.routing.get +import io.ktor.server.routing.routing import kotlinx.serialization.Serializable fun Application.configureRouting() { diff --git a/src/main/kotlin/io/github/flecomte/plugins/Security.kt b/src/main/kotlin/io/github/flecomte/plugins/Security.kt index 161cf85..405b5b1 100644 --- a/src/main/kotlin/io/github/flecomte/plugins/Security.kt +++ b/src/main/kotlin/io/github/flecomte/plugins/Security.kt @@ -2,11 +2,19 @@ package io.github.flecomte.plugins import com.auth0.jwt.JWT import com.auth0.jwt.algorithms.Algorithm -import io.ktor.server.application.* -import io.ktor.server.auth.* -import io.ktor.server.auth.jwt.* -import io.ktor.server.response.* -import io.ktor.server.routing.* +import io.ktor.server.application.Application +import io.ktor.server.application.call +import io.ktor.server.auth.UserIdPrincipal +import io.ktor.server.auth.authenticate +import io.ktor.server.auth.authentication +import io.ktor.server.auth.basic +import io.ktor.server.auth.form +import io.ktor.server.auth.jwt.JWTPrincipal +import io.ktor.server.auth.jwt.jwt +import io.ktor.server.auth.principal +import io.ktor.server.response.respondText +import io.ktor.server.routing.get +import io.ktor.server.routing.routing fun Application.configureSecurity() { // Please read the jwt property from the config file if you are using EngineMain @@ -22,7 +30,7 @@ fun Application.configureSecurity() { .require(Algorithm.HMAC256(jwtSecret)) .withAudience(jwtAudience) .withIssuer(jwtDomain) - .build() + .build(), ) validate { credential -> if (credential.payload.audience.contains(jwtAudience)) JWTPrincipal(credential.payload) else null @@ -45,7 +53,7 @@ fun Application.configureSecurity() { userParamName = "user" passwordParamName = "password" challenge { - /**/ + // } } } diff --git a/src/main/kotlin/io/github/flecomte/plugins/Serialization.kt b/src/main/kotlin/io/github/flecomte/plugins/Serialization.kt index a79cb02..4c37b9d 100644 --- a/src/main/kotlin/io/github/flecomte/plugins/Serialization.kt +++ b/src/main/kotlin/io/github/flecomte/plugins/Serialization.kt @@ -1,10 +1,13 @@ package io.github.flecomte.plugins -import io.ktor.serialization.kotlinx.json.* -import io.ktor.server.application.* -import io.ktor.server.plugins.contentnegotiation.* -import io.ktor.server.response.* -import io.ktor.server.routing.* +import io.ktor.serialization.kotlinx.json.json +import io.ktor.server.application.Application +import io.ktor.server.application.call +import io.ktor.server.application.install +import io.ktor.server.plugins.contentnegotiation.ContentNegotiation +import io.ktor.server.response.respond +import io.ktor.server.routing.get +import io.ktor.server.routing.routing fun Application.configureSerialization() { install(ContentNegotiation) { diff --git a/src/main/kotlin/io/github/flecomte/plugins/Sockets.kt b/src/main/kotlin/io/github/flecomte/plugins/Sockets.kt index 5eb531c..d8e77ab 100644 --- a/src/main/kotlin/io/github/flecomte/plugins/Sockets.kt +++ b/src/main/kotlin/io/github/flecomte/plugins/Sockets.kt @@ -1,9 +1,16 @@ package io.github.flecomte.plugins -import io.ktor.server.application.* -import io.ktor.server.routing.* -import io.ktor.server.websocket.* -import io.ktor.websocket.* +import io.ktor.server.application.Application +import io.ktor.server.application.install +import io.ktor.server.routing.routing +import io.ktor.server.websocket.WebSockets +import io.ktor.server.websocket.pingPeriod +import io.ktor.server.websocket.timeout +import io.ktor.server.websocket.webSocket +import io.ktor.websocket.CloseReason +import io.ktor.websocket.Frame +import io.ktor.websocket.close +import io.ktor.websocket.readText import java.time.Duration fun Application.configureSockets() { diff --git a/src/test/kotlin/io/github/flecomte/ApplicationTest.kt b/src/test/kotlin/io/github/flecomte/ApplicationTest.kt index 8813817..4120beb 100644 --- a/src/test/kotlin/io/github/flecomte/ApplicationTest.kt +++ b/src/test/kotlin/io/github/flecomte/ApplicationTest.kt @@ -1,21 +1,23 @@ package io.github.flecomte -import io.github.flecomte.plugins.* -import io.ktor.client.request.* -import io.ktor.client.statement.* -import io.ktor.http.* -import io.ktor.server.testing.* -import kotlin.test.* +import io.github.flecomte.plugins.configureRouting +import io.ktor.client.request.get +import io.ktor.client.statement.bodyAsText +import io.ktor.http.HttpStatusCode +import io.ktor.server.testing.testApplication +import kotlin.test.Test +import kotlin.test.assertEquals class ApplicationTest { @Test - fun testRoot() = testApplication { - application { - configureRouting() + fun testRoot() = + testApplication { + application { + configureRouting() + } + client.get("/").apply { + assertEquals(HttpStatusCode.OK, status) + assertEquals("Hello World!", bodyAsText()) + } } - client.get("/").apply { - assertEquals(HttpStatusCode.OK, status) - assertEquals("Hello World!", bodyAsText()) - } - } }