diff --git a/backend/src/main/kotlin/no/nav/mulighetsrommet/api/routes/TiltakstypeRoutes.kt b/backend/src/main/kotlin/no/nav/mulighetsrommet/api/routes/TiltakstypeRoutes.kt index 7aa2bdae46..1db5be30f3 100644 --- a/backend/src/main/kotlin/no/nav/mulighetsrommet/api/routes/TiltakstypeRoutes.kt +++ b/backend/src/main/kotlin/no/nav/mulighetsrommet/api/routes/TiltakstypeRoutes.kt @@ -1,16 +1,22 @@ package no.nav.mulighetsrommet.api.routes import io.ktor.application.call +import io.ktor.features.BadRequestException import io.ktor.http.HttpStatusCode +import io.ktor.request.receive import io.ktor.response.respond import io.ktor.response.respondText import io.ktor.routing.Route import io.ktor.routing.get +import io.ktor.routing.post +import io.ktor.routing.put import no.nav.mulighetsrommet.api.domain.Tiltakskode +import no.nav.mulighetsrommet.api.domain.Tiltakstype import no.nav.mulighetsrommet.api.services.TiltaksgjennomforingService import no.nav.mulighetsrommet.api.services.TiltakstypeService import org.koin.ktor.ext.inject +// TODO: Må lage noe felles validering her etterhvert fun Route.tiltakstypeRoutes() { val tiltakstypeService: TiltakstypeService by inject() @@ -24,8 +30,8 @@ fun Route.tiltakstypeRoutes() { runCatching { val tiltakskode = Tiltakskode.valueOf(call.parameters["tiltakskode"]!!) tiltakstypeService.getTiltakstypeByTiltakskode(tiltakskode) - }.onSuccess { tiltakstype -> - call.respond(tiltakstype!!) + }.onSuccess { fetchedTiltakstype -> + call.respond(fetchedTiltakstype!!) }.onFailure { call.respondText(text = "Fant ikke tiltakstype", status = HttpStatusCode.NotFound) } @@ -34,8 +40,28 @@ fun Route.tiltakstypeRoutes() { runCatching { val tiltakskode = Tiltakskode.valueOf(call.parameters["tiltakskode"]!!) tiltaksgjennomforingService.getTiltaksgjennomforingerByTiltakskode(tiltakskode) - }.onSuccess { tiltaksgjennomforinger -> - call.respond(tiltaksgjennomforinger) + }.onSuccess { fetchedTiltaksgjennomforinger -> + call.respond(fetchedTiltaksgjennomforinger) }.onFailure { call.respondText("Fant ikke tiltakstype", status = HttpStatusCode.NotFound) } } + post("/api/tiltakstyper") { + runCatching { + val tiltakstype = call.receive() + tiltakstypeService.createTiltakstype(tiltakstype) + }.onSuccess { createdTiltakstype -> + call.respond(createdTiltakstype) + }.onFailure { call.respondText("Kunne ikke opprette tiltakstype", status = HttpStatusCode.InternalServerError) } + } + put("/api/tiltakstyper/{tiltakskode}") { + runCatching { + val tiltakskode = Tiltakskode.valueOf(call.parameters["tiltakskode"]!!) + val tiltakstype = call.receive() + if (tiltakskode != tiltakstype.tiltakskode) { + throw BadRequestException("Tiltakskode er ikke lik") + } + tiltakstypeService.updateTiltakstype(tiltakstype) + }.onSuccess { updatedTiltakstype -> + call.respond(updatedTiltakstype) + } + } }