diff --git a/src/main/kotlin/no/nav/Application.kt b/src/main/kotlin/no/nav/Application.kt index 81a293e..b6fb1c2 100644 --- a/src/main/kotlin/no/nav/Application.kt +++ b/src/main/kotlin/no/nav/Application.kt @@ -6,18 +6,12 @@ import io.ktor.server.netty.* import io.ktor.server.routing.* import no.nav.api.debug.configureDebugRoutes import no.nav.api.dialog.configureDialogRoutes -import no.nav.api.dialog.configureDialogRoutesV2 import no.nav.api.digdir.configureDigdirRoutes -import no.nav.api.digdir.configureDigdirRoutesV2 import no.nav.api.oppfolging.configureOppfolgingRoutes -import no.nav.api.oppfolging.configureOppfolgingRoutesV2 import no.nav.api.pdl.configurePdlRoutes -import no.nav.api.pdl.configurePdlRoutesV2 import no.nav.api.skrivestotte.configureSkrivestotteRoutes import no.nav.api.tps.configureTpsRoutes -import no.nav.api.tps.configureTpsRoutesV2 import no.nav.api.utbetalinger.configureUtbetalingerRoutes -import no.nav.api.utbetalinger.configureUtbetalingerRoutesV2 import no.nav.plugins.* fun startApplication( @@ -39,18 +33,12 @@ fun startApplication( route("api") { configureDebugRoutes(consumers.tokenclient) configureOppfolgingRoutes(services.oppfolgingService) - configureOppfolgingRoutesV2(services.oppfolgingService) configurePdlRoutes(services.pdlService) - configurePdlRoutesV2(services.pdlService) configureTpsRoutes(services.tpsService) - configureTpsRoutesV2(services.tpsService) configureDialogRoutes(services.dialogService) - configureDialogRoutesV2(services.dialogService) configureDigdirRoutes(services.digdirService) - configureDigdirRoutesV2(services.digdirService) configureSkrivestotteRoutes(services.skrivestotteService) configureUtbetalingerRoutes(services.utbetalingerService) - configureUtbetalingerRoutesV2(services.utbetalingerService) } } } diff --git a/src/main/kotlin/no/nav/api/dialog/DialogRoutes.kt b/src/main/kotlin/no/nav/api/dialog/DialogRoutes.kt index 84b1044..00529d6 100644 --- a/src/main/kotlin/no/nav/api/dialog/DialogRoutes.kt +++ b/src/main/kotlin/no/nav/api/dialog/DialogRoutes.kt @@ -14,19 +14,18 @@ import no.nav.utils.getJWTPrincipalSubject import kotlin.reflect.typeOf fun Route.configureDialogRoutes(dialogService: DialogService) { - route("dialog/{fnr}") { + route("dialog") { route("sendinfomelding") { install(NotarizedRoute()) { - post = Api.sendInfoMelding + post = ApiV2.sendInfoMelding } post { val payload = call.getJWT() - val fnr = requireNotNull(call.parameters["fnr"]) - val request: MeldingRequest = call.receive() + val request: MeldingRequestV2 = call.receive() val ident = call.getJWTPrincipalSubject() call.respond( dialogService.sendInfomelding( - fnr, + request.fnr, request, ident, payload, @@ -36,16 +35,15 @@ fun Route.configureDialogRoutes(dialogService: DialogService) { } route("sendsporsmal") { install(NotarizedRoute()) { - post = Api.sendSporsmal + post = ApiV2.sendSporsmal } post { val payload = call.getJWT() - val fnr = requireNotNull(call.parameters["fnr"]) - val request: MeldingRequest = call.receive() + val request: MeldingRequestV2 = call.receive() val ident = call.getJWTPrincipalSubject() call.respond( dialogService.sendSporsmal( - fnr, + request.fnr, request, ident, payload, @@ -56,16 +54,13 @@ fun Route.configureDialogRoutes(dialogService: DialogService) { } } -private object Api { +private object ApiV2 { val sendInfoMelding = PostInfo.builder { summary("Sender infomelding til bruker") description("") request { - requestType(typeOf()) - parameters { - CommonModels.fnrParameter - } + requestType(typeOf()) description( """ Innholdet i meldingen, temaet meldingen skal knyttes til, og enheten som sender meldingen. @@ -88,10 +83,7 @@ private object Api { summary("Sender spørsmål til bruker") description("") request { - requestType(typeOf()) - parameters { - CommonModels.fnrParameter - } + requestType(typeOf()) description( """ Innholdet i meldingen, temaet meldingen skal knyttes til, og enheten som sender meldingen. diff --git a/src/main/kotlin/no/nav/api/dialog/DialogRoutesV2.kt b/src/main/kotlin/no/nav/api/dialog/DialogRoutesV2.kt deleted file mode 100644 index 9a5589d..0000000 --- a/src/main/kotlin/no/nav/api/dialog/DialogRoutesV2.kt +++ /dev/null @@ -1,103 +0,0 @@ -package no.nav.api.dialog - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.request.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import no.nav.api.CommonModels -import no.nav.api.dialog.DialogService.* -import no.nav.utils.getJWT -import no.nav.utils.getJWTPrincipalSubject -import kotlin.reflect.typeOf - -fun Route.configureDialogRoutesV2(dialogService: DialogService) { - route("v2/dialog") { - route("sendinfomelding") { - install(NotarizedRoute()) { - post = ApiV2.sendInfoMelding - } - post { - val payload = call.getJWT() - val request: MeldingRequestV2 = call.receive() - val ident = call.getJWTPrincipalSubject() - call.respond( - dialogService.sendInfomelding( - request.fnr, - request, - ident, - payload, - ), - ) - } - } - route("sendsporsmal") { - install(NotarizedRoute()) { - post = ApiV2.sendSporsmal - } - post { - val payload = call.getJWT() - val request: MeldingRequestV2 = call.receive() - val ident = call.getJWTPrincipalSubject() - call.respond( - dialogService.sendSporsmal( - request.fnr, - request, - ident, - payload, - ), - ) - } - } - } -} - -private object ApiV2 { - val sendInfoMelding = - PostInfo.builder { - summary("Sender infomelding til bruker") - description("") - request { - requestType(typeOf()) - description( - """ - Innholdet i meldingen, temaet meldingen skal knyttes til, og enheten som sender meldingen. - Tekster som inneholder referanser til brukers navn og fødselsnummer (og kun disse) vil bli omgjort med riktig verdier - før innsending. Eksempel på referanse: [bruker.fornavn], [bruker.etternavn] etc. - """.trimIndent(), - ) - } - response { - responseType(typeOf()) - responseCode(HttpStatusCode.OK) - description("Referanse til meldingen som ble sendt til bruker") - } - tags("Dialog") - canRespond(CommonModels.standardResponses) - } - - val sendSporsmal = - PostInfo.builder { - summary("Sender spørsmål til bruker") - description("") - request { - requestType(typeOf()) - description( - """ - Innholdet i meldingen, temaet meldingen skal knyttes til, og enheten som sender meldingen. - Tekster som inneholder referanser til brukers navn og fødselsnummer (og kun disse) vil bli omgjort med riktig verdier - før innsending. Eksempel på referanse: [bruker.fornavn], [bruker.etternavn] etc. - """.trimIndent(), - ) - } - response { - responseType(typeOf()) - responseCode(HttpStatusCode.OK) - description("Referanse til meldingen som ble sendt til bruker") - } - tags("Dialog") - canRespond(CommonModels.standardResponses) - } -} diff --git a/src/main/kotlin/no/nav/api/digdir/DigdirRoutes.kt b/src/main/kotlin/no/nav/api/digdir/DigdirRoutes.kt index e9b1236..808fc8c 100644 --- a/src/main/kotlin/no/nav/api/digdir/DigdirRoutes.kt +++ b/src/main/kotlin/no/nav/api/digdir/DigdirRoutes.kt @@ -1,37 +1,39 @@ package no.nav.api.digdir -import io.bkbn.kompendium.core.metadata.GetInfo +import io.bkbn.kompendium.core.metadata.PostInfo import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.client.request.* import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import no.nav.api.CommonModels import no.nav.api.digdir.DigdirService.* +import no.nav.models.FnrRequest +import no.nav.models.deserializeFnr import no.nav.utils.getJWT import kotlin.reflect.typeOf fun Route.configureDigdirRoutes(digdirService: DigdirService) { - route("digdir/{fnr}/kontaktinformasjon") { + route("digdir/kontaktinformasjon") { install(NotarizedRoute()) { - get = Api.kontaktinformasjon + post = ApiV2.kontaktinformasjon } - get { + post { val payload = call.getJWT() - val ident = requireNotNull(call.parameters["fnr"]) + val ident = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) call.respond(digdirService.hentKontaktinformasjon(ident, payload)) } } } -private object Api { +private object ApiV2 { val kontaktinformasjon = - GetInfo.builder { + PostInfo.builder { summary("Brukers epost og mobiltelefonnummer") description("Hentes fra digdir-proxy") request { - parameters(CommonModels.fnrParameter) + requestType(typeOf()) + description("Brukers ident") } response { responseCode(HttpStatusCode.OK) diff --git a/src/main/kotlin/no/nav/api/digdir/DigdirRoutesV2.kt b/src/main/kotlin/no/nav/api/digdir/DigdirRoutesV2.kt deleted file mode 100644 index 7db683f..0000000 --- a/src/main/kotlin/no/nav/api/digdir/DigdirRoutesV2.kt +++ /dev/null @@ -1,46 +0,0 @@ -package no.nav.api.digdir - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import no.nav.api.CommonModels -import no.nav.api.digdir.DigdirService.* -import no.nav.models.FnrRequest -import no.nav.models.deserializeFnr -import no.nav.utils.getJWT -import kotlin.reflect.typeOf - -fun Route.configureDigdirRoutesV2(digdirService: DigdirService) { - route("v2/digdir/kontaktinformasjon") { - install(NotarizedRoute()) { - post = ApiV2.kontaktinformasjon - } - post { - val payload = call.getJWT() - val ident = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) - call.respond(digdirService.hentKontaktinformasjon(ident, payload)) - } - } -} - -private object ApiV2 { - val kontaktinformasjon = - PostInfo.builder { - summary("Brukers epost og mobiltelefonnummer") - description("Hentes fra digdir-proxy") - request { - requestType(typeOf()) - description("Brukers ident") - } - response { - responseCode(HttpStatusCode.OK) - responseType(typeOf()) - description("Brukers epost og mobiltelefonnummer") - } - tags("Brukers epost og mobiltelefonnummer") - canRespond(CommonModels.standardResponses) - } -} diff --git a/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutes.kt b/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutes.kt index 8cdb228..9ce3f52 100644 --- a/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutes.kt +++ b/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutes.kt @@ -1,36 +1,38 @@ package no.nav.api.oppfolging -import io.bkbn.kompendium.core.metadata.GetInfo +import io.bkbn.kompendium.core.metadata.PostInfo import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.client.request.* import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import no.nav.api.CommonModels +import no.nav.models.FnrRequest +import no.nav.models.deserializeFnr import no.nav.utils.getJWT import kotlin.reflect.typeOf fun Route.configureOppfolgingRoutes(oppfolgingService: OppfolgingService) { - route("oppfolging/{fnr}/veileder") { + route("oppfolging/veileder") { install(NotarizedRoute()) { - get = Api.veileder + post = ApiV2.veileder } - get { + post { val payload = call.getJWT() - val fnr = requireNotNull(call.parameters["fnr"]) + val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) call.respond(oppfolgingService.hentOppfolging(fnr, payload)) } } } -private object Api { +private object ApiV2 { val veileder = - GetInfo.builder { + PostInfo.builder { summary("Brukers oppfølgingsveileder") description("Hentes fra veilarboppfølging") request { - parameters(CommonModels.fnrParameter) + requestType(typeOf()) + description("Brukers ident") } response { responseType(typeOf()) diff --git a/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutesV2.kt b/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutesV2.kt deleted file mode 100644 index 278ce55..0000000 --- a/src/main/kotlin/no/nav/api/oppfolging/OppfolgingRoutesV2.kt +++ /dev/null @@ -1,45 +0,0 @@ -package no.nav.api.oppfolging - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import no.nav.api.CommonModels -import no.nav.models.FnrRequest -import no.nav.models.deserializeFnr -import no.nav.utils.getJWT -import kotlin.reflect.typeOf - -fun Route.configureOppfolgingRoutesV2(oppfolgingService: OppfolgingService) { - route("v2/oppfolging/veileder") { - install(NotarizedRoute()) { - post = ApiV2.veileder - } - post { - val payload = call.getJWT() - val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) - call.respond(oppfolgingService.hentOppfolging(fnr, payload)) - } - } -} - -private object ApiV2 { - val veileder = - PostInfo.builder { - summary("Brukers oppfølgingsveileder") - description("Hentes fra veilarboppfølging") - request { - requestType(typeOf()) - description("Brukers ident") - } - response { - responseType(typeOf()) - responseCode(HttpStatusCode.OK) - description("Navn og ident til brukers veileder") - } - tags("Oppfølging") - canRespond(CommonModels.standardResponses) - } -} diff --git a/src/main/kotlin/no/nav/api/pdl/PdlRoutes.kt b/src/main/kotlin/no/nav/api/pdl/PdlRoutes.kt index dd8d1c8..2ba0ebb 100644 --- a/src/main/kotlin/no/nav/api/pdl/PdlRoutes.kt +++ b/src/main/kotlin/no/nav/api/pdl/PdlRoutes.kt @@ -1,34 +1,38 @@ package no.nav.api.pdl -import io.bkbn.kompendium.core.metadata.GetInfo +import io.bkbn.kompendium.core.metadata.PostInfo import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.client.request.* import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import kotlinx.serialization.Serializable import no.nav.api.CommonModels +import no.nav.models.FnrRequest +import no.nav.models.deserializeFnr import no.nav.utils.getJWT import kotlin.reflect.typeOf fun Route.configurePdlRoutes(pdlService: PdlService) { - route("pdl/{fnr}") { - install(NotarizedRoute()) { get = Api.personalia } - get { + route("pdl") { + install(NotarizedRoute()) { post = ApiV2.personalia } + post { val payload = call.getJWT() - val fnr = requireNotNull(call.parameters["fnr"]) + val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) call.respond(pdlService.hentPersonalia(fnr, payload)) } } } -private object Api { +private object ApiV2 { val personalia = - GetInfo.builder { + PostInfo.builder { summary("Generelle personopplysninger") description("Hentes fra PDL") - request { parameters(CommonModels.fnrParameter) } + request { + requestType(typeOf()) + description("Brukers ident") + } response { responseCode(HttpStatusCode.OK) responseType(typeOf()) diff --git a/src/main/kotlin/no/nav/api/pdl/PdlRoutesV2.kt b/src/main/kotlin/no/nav/api/pdl/PdlRoutesV2.kt deleted file mode 100644 index 92e0993..0000000 --- a/src/main/kotlin/no/nav/api/pdl/PdlRoutesV2.kt +++ /dev/null @@ -1,43 +0,0 @@ -package no.nav.api.pdl - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import no.nav.api.CommonModels -import no.nav.models.FnrRequest -import no.nav.models.deserializeFnr -import no.nav.utils.getJWT -import kotlin.reflect.typeOf - -fun Route.configurePdlRoutesV2(pdlService: PdlService) { - route("v2/pdl") { - install(NotarizedRoute()) { post = ApiV2.personalia } - post { - val payload = call.getJWT() - val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) - call.respond(pdlService.hentPersonalia(fnr, payload)) - } - } -} - -private object ApiV2 { - val personalia = - PostInfo.builder { - summary("Generelle personopplysninger") - description("Hentes fra PDL") - request { - requestType(typeOf()) - description("Brukers ident") - } - response { - responseCode(HttpStatusCode.OK) - responseType(typeOf()) - description("Brukers pdl data") - } - tags("PDL") - canRespond(CommonModels.standardResponses) - } -} diff --git a/src/main/kotlin/no/nav/api/tps/TpsRoutes.kt b/src/main/kotlin/no/nav/api/tps/TpsRoutes.kt index f4732a3..85abfdc 100644 --- a/src/main/kotlin/no/nav/api/tps/TpsRoutes.kt +++ b/src/main/kotlin/no/nav/api/tps/TpsRoutes.kt @@ -1,33 +1,37 @@ package no.nav.api.tps -import io.bkbn.kompendium.core.metadata.GetInfo +import io.bkbn.kompendium.core.metadata.PostInfo import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.client.request.* import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* import no.nav.api.CommonModels +import no.nav.models.FnrRequest +import no.nav.models.deserializeFnr import kotlin.reflect.typeOf fun Route.configureTpsRoutes(tpsService: TpsService) { - route("tps/{fnr}/kontonummer") { + route("tps/kontonummer") { install(NotarizedRoute()) { - get = Api.kontonummer + post = ApiV2.kontonummer } - get { - val fnr = checkNotNull(call.parameters["fnr"]) + post { + val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) call.respond(tpsService.hentKontonummer(fnr)) } } } -private object Api { +private object ApiV2 { val kontonummer = - GetInfo.builder { + PostInfo.builder { summary("Brukers kontonummer") description("Hentes fra TPS") - request { parameters(CommonModels.fnrParameter) } + request { + requestType(typeOf()) + description("Brukers ident") + } response { responseType(typeOf()) responseCode(HttpStatusCode.OK) diff --git a/src/main/kotlin/no/nav/api/tps/TpsRoutesV2.kt b/src/main/kotlin/no/nav/api/tps/TpsRoutesV2.kt deleted file mode 100644 index 8176a72..0000000 --- a/src/main/kotlin/no/nav/api/tps/TpsRoutesV2.kt +++ /dev/null @@ -1,43 +0,0 @@ -package no.nav.api.tps - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import no.nav.api.CommonModels -import no.nav.models.FnrRequest -import no.nav.models.deserializeFnr -import kotlin.reflect.typeOf - -fun Route.configureTpsRoutesV2(tpsService: TpsService) { - route("v2/tps/kontonummer") { - install(NotarizedRoute()) { - post = ApiV2.kontonummer - } - post { - val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) - call.respond(tpsService.hentKontonummer(fnr)) - } - } -} - -private object ApiV2 { - val kontonummer = - PostInfo.builder { - summary("Brukers kontonummer") - description("Hentes fra TPS") - request { - requestType(typeOf()) - description("Brukers ident") - } - response { - responseType(typeOf()) - responseCode(HttpStatusCode.OK) - description("Brukers kontonummer om det eksisterer i TPS") - } - tags("TPS") - canRespond(CommonModels.standardResponses) - } -} diff --git a/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutes.kt b/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutes.kt index b6496b2..c079df0 100644 --- a/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutes.kt +++ b/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutes.kt @@ -1,10 +1,9 @@ package no.nav.api.utbetalinger -import io.bkbn.kompendium.core.metadata.GetInfo +import io.bkbn.kompendium.core.metadata.PostInfo import io.bkbn.kompendium.core.plugin.NotarizedRoute import io.bkbn.kompendium.json.schema.definition.TypeDefinition import io.bkbn.kompendium.oas.payload.Parameter -import io.ktor.client.request.* import io.ktor.http.* import io.ktor.server.application.* import io.ktor.server.response.* @@ -12,15 +11,17 @@ import io.ktor.server.routing.* import kotlinx.datetime.LocalDate import no.nav.api.CommonModels import no.nav.api.utbetalinger.UtbetalingerService.* +import no.nav.models.FnrRequest +import no.nav.models.deserializeFnr import no.nav.utils.getJWT import kotlin.reflect.typeOf fun Route.configureUtbetalingerRoutes(utbetalingerService: UtbetalingerService) { - route("utbetalinger/{fnr}/ytelseoversikt") { - install(NotarizedRoute()) { get = Api.utbetalinger } - get { + route("utbetalinger/ytelseoversikt") { + install(NotarizedRoute()) { post = ApiV2.utbetalinger } + post { val payload = call.getJWT() - val fnr = requireNotNull(call.parameters["fnr"]) + val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) val fra = LocalDate.parse(call.request.queryParameters["fra"] ?: "") val til = LocalDate.parse(call.request.queryParameters["til"] ?: "") @@ -29,12 +30,16 @@ fun Route.configureUtbetalingerRoutes(utbetalingerService: UtbetalingerService) } } -private object Api { +private object ApiV2 { val utbetalinger = - GetInfo.builder { + PostInfo.builder { summary("Brukers utbetalinger") description("Hentes fra utbetaldata") - request { parameters(CommonModels.fnrParameter, Models.fraParam, Models.tilParam) } + request { + parameters(Models.fraParam, Models.tilParam) + requestType(typeOf()) + description("Brukers ident") + } response { responseCode(HttpStatusCode.OK) responseType(typeOf>()) diff --git a/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutesV2.kt b/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutesV2.kt deleted file mode 100644 index d3fd0ac..0000000 --- a/src/main/kotlin/no/nav/api/utbetalinger/UtbetalingerRoutesV2.kt +++ /dev/null @@ -1,49 +0,0 @@ -package no.nav.api.utbetalinger - -import io.bkbn.kompendium.core.metadata.PostInfo -import io.bkbn.kompendium.core.plugin.NotarizedRoute -import io.ktor.http.* -import io.ktor.server.application.* -import io.ktor.server.response.* -import io.ktor.server.routing.* -import kotlinx.datetime.LocalDate -import no.nav.api.CommonModels -import no.nav.api.utbetalinger.UtbetalingerService.* -import no.nav.models.FnrRequest -import no.nav.models.deserializeFnr -import no.nav.utils.getJWT -import kotlin.reflect.typeOf - -fun Route.configureUtbetalingerRoutesV2(utbetalingerService: UtbetalingerService) { - route("v2/utbetalinger/ytelseoversikt") { - install(NotarizedRoute()) { post = ApiV2.utbetalinger } - post { - val payload = call.getJWT() - val fnr = call.deserializeFnr() ?: return@post call.respond(HttpStatusCode.BadRequest) - val fra = LocalDate.parse(call.request.queryParameters["fra"] ?: "") - val til = LocalDate.parse(call.request.queryParameters["til"] ?: "") - - call.respond(utbetalingerService.hentUtbetalinger(fnr, fra, til, payload)) - } - } -} - -private object ApiV2 { - val utbetalinger = - PostInfo.builder { - summary("Brukers utbetalinger") - description("Hentes fra utbetaldata") - request { - parameters(Models.fraParam, Models.tilParam) - requestType(typeOf()) - description("Brukers ident") - } - response { - responseCode(HttpStatusCode.OK) - responseType(typeOf>()) - description("Brukers utbetalinger") - } - tags("Utbetalinger") - canRespond(CommonModels.standardResponses) - } -}