diff --git a/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/StartKtorApplication.kt b/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/StartKtorApplication.kt index 57bdcc036e..c61aff0385 100644 --- a/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/StartKtorApplication.kt +++ b/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/StartKtorApplication.kt @@ -3,23 +3,15 @@ package no.nav.mulighetsrommet.ktor import io.ktor.server.application.* import io.ktor.server.engine.* import io.ktor.server.netty.* -import org.slf4j.LoggerFactory fun startKtorApplication(config: ServerConfig, configure: Application.() -> Unit) { val loggerName = configure.javaClass.name.split('$').first() val server = embeddedServer( Netty, - environment = applicationEngineEnvironment { - log = LoggerFactory.getLogger(loggerName) - - module(configure) - - connector { - port = config.port - host = config.host - } - }, + port = config.port, + host = config.host, + module = configure, ) server.start(true) diff --git a/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/plugins/Monitoring.kt b/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/plugins/Monitoring.kt index fd28a0e394..f33658275c 100644 --- a/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/plugins/Monitoring.kt +++ b/common/ktor/src/main/kotlin/no/nav/mulighetsrommet/ktor/plugins/Monitoring.kt @@ -6,7 +6,7 @@ import io.ktor.server.auth.* import io.ktor.server.auth.jwt.* import io.ktor.server.metrics.micrometer.* import io.ktor.server.plugins.callid.* -import io.ktor.server.plugins.callloging.* +import io.ktor.server.plugins.calllogging.* import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.server.routing.* diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5efc4cf2f6..7d14e14048 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ koin = "4.0.0" kotest = "5.9.1" kotest-testcontainers = "2.0.2" kotlin = "2.0.21" -ktor = "2.3.12" +ktor = "3.0.0" logback = "1.5.12" metrics = "4.2.28" arrow = "1.2.4" diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/okonomi/refusjon/ArrangorflateRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/okonomi/refusjon/ArrangorflateRoutes.kt index 0a8da33aa5..0df7d510e5 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/okonomi/refusjon/ArrangorflateRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/okonomi/refusjon/ArrangorflateRoutes.kt @@ -2,13 +2,11 @@ package no.nav.mulighetsrommet.api.okonomi.refusjon import arrow.core.getOrElse import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.auth.* import io.ktor.server.plugins.* import io.ktor.server.response.* import io.ktor.server.routing.* import io.ktor.server.util.* -import io.ktor.util.pipeline.* import kotlinx.serialization.Serializable import no.nav.mulighetsrommet.api.okonomi.models.DeltakelsePeriode import no.nav.mulighetsrommet.api.okonomi.models.RefusjonKravBeregningAft @@ -44,7 +42,7 @@ fun Route.arrangorflateRoutes() { val refusjonskrav: RefusjonskravRepository by inject() val deltakerRepository: DeltakerRepository by inject() - suspend fun PipelineContext.arrangorerMedTilgang(): List { + suspend fun RoutingContext.arrangorerMedTilgang(): List { return call.principal() ?.organisasjonsnummer ?.map { @@ -57,7 +55,7 @@ fun Route.arrangorflateRoutes() { ?: throw StatusException(HttpStatusCode.Unauthorized) } - fun PipelineContext.requireTilgangHosArrangor(organisasjonsnummer: Organisasjonsnummer) { + fun RoutingContext.requireTilgangHosArrangor(organisasjonsnummer: Organisasjonsnummer) { call.principal() ?.organisasjonsnummer ?.find { it == organisasjonsnummer } diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/parameters/GetPaginationParams.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/parameters/GetPaginationParams.kt index 5e54a39112..001421f363 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/parameters/GetPaginationParams.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/parameters/GetPaginationParams.kt @@ -1,14 +1,13 @@ package no.nav.mulighetsrommet.api.parameters -import io.ktor.server.application.* -import io.ktor.util.pipeline.* +import io.ktor.server.routing.* import no.nav.mulighetsrommet.database.utils.Pagination const val FIRST_PAGE = 1 const val DEFAULT_PAGE_SIZE = 50 -fun PipelineContext.getPaginationParams(): Pagination { +fun RoutingContext.getPaginationParams(): Pagination { return Pagination.of( page = call.parameters["page"]?.toIntOrNull() ?: FIRST_PAGE, size = call.parameters["size"]?.toIntOrNull() ?: DEFAULT_PAGE_SIZE, diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/plugins/Authentication.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/plugins/Authentication.kt index 34d94cd0e3..a941bf5276 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/plugins/Authentication.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/plugins/Authentication.kt @@ -55,7 +55,7 @@ fun Route.authenticate( * Gets a NAVident from the underlying [JWTPrincipal], or throws a [StatusException] * if the claim is not available. */ -fun PipelineContext.getNavIdent(): NavIdent { +fun RoutingContext.getNavIdent(): NavIdent { return call.principal()?.get("NAVident")?.let { NavIdent(it) } ?: throw StatusException( HttpStatusCode.Forbidden, "NAVident mangler i JWTPrincipal", @@ -66,7 +66,7 @@ fun PipelineContext.getNavIdent(): NavIdent { * Gets a NavAnsattAzureId from the underlying [JWTPrincipal], or throws a [StatusException] * if the claim is not available. */ -fun PipelineContext.getNavAnsattAzureId(): UUID { +fun RoutingContext.getNavAnsattAzureId(): UUID { return call.principal()?.get("oid")?.let { UUID.fromString(it) } ?: throw StatusException( HttpStatusCode.Forbidden, "NavAnsattAzureId mangler i JWTPrincipal", @@ -77,7 +77,7 @@ fun PipelineContext.getNavAnsattAzureId(): UUID { * Gets a pid from the underlying [JWTPrincipal], or throws a [StatusException] * if the claim is not available. */ -fun PipelineContext.getPid(): NorskIdent { +fun RoutingContext.getPid(): NorskIdent { return call.principal()?.get("pid")?.let { NorskIdent(it) } ?: throw StatusException( HttpStatusCode.Forbidden, "pid mangler i JWTPrincipal", diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArbeidsmarkedstiltakRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArbeidsmarkedstiltakRoutes.kt index 9c1fd3cbc6..bf619cf01f 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArbeidsmarkedstiltakRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArbeidsmarkedstiltakRoutes.kt @@ -35,7 +35,7 @@ enum class ApentForInnsok { APENT_ELLER_STENGT, } -fun PipelineContext.getArbeidsmarkedstiltakFilter(): ArbeidsmarkedstiltakFilter { +fun RoutingContext.getArbeidsmarkedstiltakFilter(): ArbeidsmarkedstiltakFilter { val queryParameters = call.request.queryParameters val enheter = queryParameters.getAll("enheter") diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArrangorRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArrangorRoutes.kt index 6df536aee7..ca959c0a95 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArrangorRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ArrangorRoutes.kt @@ -104,7 +104,7 @@ data class ArrangorFilter( val sortering: String? = null, ) -fun PipelineContext.getArrangorFilter(): ArrangorFilter { +fun RoutingContext.getArrangorFilter(): ArrangorFilter { val til = call.request.queryParameters["til"] val sok = call.request.queryParameters["sok"] val sortering = call.request.queryParameters["sortering"] diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/AvtaleRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/AvtaleRoutes.kt index 7660068a7c..b57f4cab24 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/AvtaleRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/AvtaleRoutes.kt @@ -1,7 +1,6 @@ package no.nav.mulighetsrommet.api.routes.v1 import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.server.routing.* @@ -241,7 +240,7 @@ fun Route.avtaleRoutes() { } } -fun PipelineContext.getAvtaleFilter(): AvtaleFilter { +fun RoutingContext.getAvtaleFilter(): AvtaleFilter { val tiltakstypeIder = call.parameters.getAll("tiltakstyper")?.map { it.toUUID() } ?: emptyList() val search = call.request.queryParameters["search"] val statuser = call.parameters.getAll("statuser") diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ExternalRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ExternalRoutes.kt index 10fc3249b2..93ac16a08b 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ExternalRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/ExternalRoutes.kt @@ -1,7 +1,6 @@ package no.nav.mulighetsrommet.api.routes.v1 import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import io.ktor.server.util.* diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/JanzzRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/JanzzRoutes.kt index e0d4a8afa2..cc5fb3bdff 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/JanzzRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/JanzzRoutes.kt @@ -1,6 +1,5 @@ package no.nav.mulighetsrommet.api.routes.v1 -import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import io.ktor.server.util.* diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavAnsattRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavAnsattRoutes.kt index 15ecb8c2e6..f7f2c3f621 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavAnsattRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavAnsattRoutes.kt @@ -4,7 +4,6 @@ import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import io.ktor.server.util.* -import io.ktor.util.pipeline.* import no.nav.mulighetsrommet.api.domain.dbo.NavAnsattRolle import no.nav.mulighetsrommet.api.plugins.getNavAnsattAzureId import no.nav.mulighetsrommet.api.services.NavAnsattService @@ -38,7 +37,7 @@ fun Route.navAnsattRoutes() { } } -fun PipelineContext.getNavAnsattFilter(): NavAnsattFilter { +fun RoutingContext.getNavAnsattFilter(): NavAnsattFilter { val azureIder = call.parameters.getAll("roller") ?.map { NavAnsattRolle.valueOf(it) } ?: emptyList() diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavEnhetRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavEnhetRoutes.kt index 9bceefb37b..0d78529827 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavEnhetRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NavEnhetRoutes.kt @@ -1,11 +1,9 @@ package no.nav.mulighetsrommet.api.routes.v1 import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import io.ktor.server.util.* -import io.ktor.util.pipeline.* import no.nav.mulighetsrommet.api.clients.norg2.Norg2Type import no.nav.mulighetsrommet.api.domain.dbo.NavEnhetStatus import no.nav.mulighetsrommet.api.services.EnhetFilter @@ -38,7 +36,7 @@ fun Route.navEnhetRoutes() { } } -fun PipelineContext.getEnhetFilter(): EnhetFilter { +fun RoutingContext.getEnhetFilter(): EnhetFilter { val statuser = call.parameters.getAll("statuser") ?.map { NavEnhetStatus.valueOf(it) } diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NotificationRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NotificationRoutes.kt index 8ed59abc7e..83f2b4cf38 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NotificationRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/NotificationRoutes.kt @@ -1,7 +1,6 @@ package no.nav.mulighetsrommet.api.routes.v1 import io.ktor.http.* -import io.ktor.server.application.* import io.ktor.server.request.* import io.ktor.server.response.* import io.ktor.server.routing.* @@ -61,7 +60,7 @@ data class SetNotificationStatusRequest( ) } -fun PipelineContext.getNotificationFilter(): NotificationFilter { +fun RoutingContext.getNotificationFilter(): NotificationFilter { val status = call.request.queryParameters["status"] return NotificationFilter( status = status?.let { NotificationStatus.valueOf(it) }, diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltaksgjennomforingRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltaksgjennomforingRoutes.kt index 4b5a070dc8..9d68715f94 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltaksgjennomforingRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltaksgjennomforingRoutes.kt @@ -200,7 +200,7 @@ data class AdminTiltaksgjennomforingFilter( val publisert: Boolean? = null, ) -fun PipelineContext.getAdminTiltaksgjennomforingsFilter(): AdminTiltaksgjennomforingFilter { +fun RoutingContext.getAdminTiltaksgjennomforingsFilter(): AdminTiltaksgjennomforingFilter { val search = call.request.queryParameters["search"] val navEnheter = call.parameters.getAll("navEnheter") ?: emptyList() val tiltakstypeIder = call.parameters.getAll("tiltakstyper")?.map { UUID.fromString(it) } ?: emptyList() diff --git a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltakstypeRoutes.kt b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltakstypeRoutes.kt index 9917b070bb..21bdbfbe25 100644 --- a/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltakstypeRoutes.kt +++ b/mulighetsrommet-api/src/main/kotlin/no/nav/mulighetsrommet/api/routes/v1/TiltakstypeRoutes.kt @@ -60,7 +60,7 @@ data class TiltakstypeFilter( val sortering: String? = null, ) -fun PipelineContext.getTiltakstypeFilter(): TiltakstypeFilter { +fun RoutingContext.getTiltakstypeFilter(): TiltakstypeFilter { val sortering = call.request.queryParameters["sort"] return TiltakstypeFilter( sortering = sortering,