Skip to content

Commit 6787fdc

Browse files
committed
svarer med 200 og null fremfor 404 ved manglende sak/søknad
1 parent ece2761 commit 6787fdc

File tree

4 files changed

+44
-29
lines changed

4 files changed

+44
-29
lines changed
Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
package no.nav.hjelpemidler.soknad.db.sak
22

3-
import io.ktor.http.HttpStatusCode
3+
import io.github.oshai.kotlinlogging.KotlinLogging
44
import io.ktor.server.application.call
55
import io.ktor.server.resources.get
6-
import io.ktor.server.response.respond
6+
import io.ktor.server.response.respondNullable
77
import io.ktor.server.routing.Route
88
import no.nav.hjelpemidler.behovsmeldingsmodell.sak.HotsakSakId
9-
import no.nav.hjelpemidler.soknad.db.exception.feilmelding
109
import no.nav.hjelpemidler.soknad.db.store.Transaction
1110

12-
fun Route.sakApi(
13-
transaction: Transaction,
14-
) {
11+
private val logg = KotlinLogging.logger {}
12+
13+
fun Route.sakApi(transaction: Transaction) {
1514
/**
1615
* NB! Kun saker fra Hotsak har en entydig sakId.
1716
*/
1817
get<Saker.SakId> {
1918
val sakId = HotsakSakId(it.sakId)
20-
val sak = transaction {
21-
hotsakStore.finnSak(sakId)
22-
} ?: return@get call.feilmelding(HttpStatusCode.NotFound, "Fant ikke sak med sakId: $sakId")
23-
call.respond(sak)
19+
val sak = transaction { hotsakStore.finnSak(sakId) }
20+
if (sak == null) {
21+
logg.info { "Fant ikke sak med sakId: $sakId" }
22+
}
23+
call.respondNullable(sak)
2424
}
2525

2626
/**
@@ -31,7 +31,10 @@ fun Route.sakApi(
3131
val søknad = transaction {
3232
val sak = hotsakStore.finnSak(sakId) ?: return@transaction null
3333
søknadStore.finnSøknad(sak.søknadId, it.inkluderData)
34-
} ?: return@get call.feilmelding(HttpStatusCode.NotFound, "Fant ikke søknad for sakId: $sakId")
35-
call.respond(søknad)
34+
}
35+
if (søknad == null) {
36+
logg.info { "Fant ikke søknad for sakId: $sakId" }
37+
}
38+
call.respondNullable(søknad)
3639
}
3740
}

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/soknad/SøknadApi.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import io.ktor.server.resources.get
88
import io.ktor.server.resources.post
99
import io.ktor.server.resources.put
1010
import io.ktor.server.response.respond
11+
import io.ktor.server.response.respondNullable
1112
import io.ktor.server.routing.Route
1213
import no.nav.hjelpemidler.behovsmeldingsmodell.BehovsmeldingStatus
1314
import no.nav.hjelpemidler.behovsmeldingsmodell.sak.Sakstilknytning
@@ -25,10 +26,12 @@ fun Route.søknadApi(
2526
val søknadService = serviceContext.søknadService
2627

2728
get<Søknader.SøknadId> {
28-
val søknad = transaction {
29-
søknadStore.finnSøknad(it.søknadId, it.inkluderData)
30-
} ?: return@get call.feilmelding(HttpStatusCode.NotFound, "Fant ikke søknad med søknadId: ${it.søknadId}")
31-
call.respond(HttpStatusCode.OK, søknad)
29+
val søknadId = it.søknadId
30+
val søknad = transaction { søknadStore.finnSøknad(søknadId, it.inkluderData) }
31+
if (søknad == null) {
32+
logg.info { "Fant ikke søknad med søknadId: $søknadId" }
33+
}
34+
call.respondNullable(HttpStatusCode.OK, søknad)
3235
}
3336

3437
put<Søknader.SøknadId.Journalpost> {
Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,63 @@
11
package no.nav.hjelpemidler.soknad.db.soknad
22

33
import io.kotest.matchers.nulls.shouldBeNull
4-
import io.kotest.matchers.should
4+
import io.kotest.matchers.nulls.shouldNotBeNull
55
import io.kotest.matchers.shouldBe
66
import io.ktor.client.plugins.resources.put
77
import io.ktor.client.request.setBody
88
import io.ktor.http.HttpStatusCode
99
import no.nav.hjelpemidler.soknad.db.test.expect
1010
import no.nav.hjelpemidler.soknad.db.test.testApplication
11+
import java.util.UUID
1112
import kotlin.test.Test
1213

1314
class SøknadApiTest {
1415
@Test
1516
fun `Skal hente søknad`() = testApplication {
1617
val søknadId = lagreSøknad().soknadId
17-
val søknad = hentSøknad(søknadId, true)
18-
søknad.søknadId shouldBe søknadId
18+
finnSøknad(søknadId, true).shouldNotBeNull {
19+
this.søknadId shouldBe søknadId
20+
}
21+
}
22+
23+
@Test
24+
fun `Skal hente søknad som ikke finnes`() = testApplication {
25+
val søknadId = UUID.randomUUID()
26+
val søknad = finnSøknad(søknadId, true)
27+
søknad shouldBe null
1928
}
2029

2130
@Test
2231
fun `Skal oppdatere journalpostId`() = testApplication {
2332
val søknadId = lagreSøknad().soknadId
24-
hentSøknad(søknadId).should {
25-
it.journalpostId.shouldBeNull()
33+
finnSøknad(søknadId).shouldNotBeNull {
34+
journalpostId.shouldBeNull()
2635
}
2736
val journalpostId = "102030"
2837
client
2938
.put(Søknader.SøknadId.Journalpost(søknadId)) {
3039
setBody(mapOf("journalpostId" to journalpostId))
3140
}
3241
.expect(HttpStatusCode.OK, 1)
33-
hentSøknad(søknadId).should {
34-
it.journalpostId shouldBe journalpostId
42+
finnSøknad(søknadId).shouldNotBeNull {
43+
journalpostId shouldBe journalpostId
3544
}
3645
}
3746

3847
@Test
3948
fun `Skal oppdatere oppgaveId`() = testApplication {
4049
val søknadId = lagreSøknad().soknadId
41-
hentSøknad(søknadId).should {
42-
it.oppgaveId.shouldBeNull()
50+
finnSøknad(søknadId).shouldNotBeNull {
51+
oppgaveId.shouldBeNull()
4352
}
4453
val oppgaveId = "302010"
4554
client
4655
.put(Søknader.SøknadId.Oppgave(søknadId)) {
4756
setBody(mapOf("oppgaveId" to oppgaveId))
4857
}
4958
.expect(HttpStatusCode.OK, 1)
50-
hentSøknad(søknadId).should {
51-
it.oppgaveId shouldBe oppgaveId
59+
finnSøknad(søknadId).shouldNotBeNull {
60+
oppgaveId shouldBe oppgaveId
5261
}
5362
}
5463
}

app/src/test/kotlin/no/nav/hjelpemidler/soknad/db/test/TestContext.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ class TestContext(
9393
return søknad
9494
}
9595

96-
suspend fun hentSøknad(søknadId: SøknadId, inkluderData: Boolean = false): Søknad {
96+
suspend fun finnSøknad(søknadId: SøknadId, inkluderData: Boolean = false): Søknad? {
9797
val response = client.get(Søknader.SøknadId(søknadId, inkluderData))
9898
response shouldHaveStatus HttpStatusCode.OK
99-
return response.body()
99+
return response.body<Søknad?>()
100100
}
101101

102102
// fixme -> ny url

0 commit comments

Comments
 (0)