@@ -11,6 +11,9 @@ import mu.KotlinLogging
11
11
import no.nav.tiltakspenger.libs.auth.core.TokenService
12
12
import no.nav.tiltakspenger.libs.auth.ktor.withSaksbehandler
13
13
import no.nav.tiltakspenger.libs.common.Fnr
14
+ import no.nav.tiltakspenger.libs.common.UgyldigFnrException
15
+ import no.nav.tiltakspenger.libs.ktor.common.respond500InternalServerError
16
+ import no.nav.tiltakspenger.libs.logging.sikkerlogg
14
17
import no.nav.tiltakspenger.saksbehandling.service.sak.KunneIkkeHenteSakForFnr
15
18
import no.nav.tiltakspenger.saksbehandling.service.sak.SakService
16
19
import no.nav.tiltakspenger.vedtak.auditlog.AuditLogEvent
@@ -32,11 +35,31 @@ fun Route.hentSakForFnrRoute(
32
35
post(SAK_PATH ) {
33
36
logger.debug { " Mottatt post-request på $SAK_PATH " }
34
37
call.withSaksbehandler(tokenService = tokenService, svarMed403HvisIngenScopes = false ) { saksbehandler ->
35
- val fnr = Either .catch { Fnr .fromString(call.receive<FnrDTO >().fnr) }.getOrElse {
36
- call.respond400BadRequest(
37
- melding = " Forventer at fødselsnummeret er 11 siffer" ,
38
- kode = " ugyldig_fnr" ,
39
- )
38
+ val fnrStr = Either .catch { call.receive<FnrDTO >().fnr }.getOrElse {
39
+ with (" Feil ved deserialize av fnr request body" ) {
40
+ logger.error { this }
41
+ sikkerlogg.error(it) { this }
42
+ call.respond400BadRequest(
43
+ melding = this ,
44
+ kode = " fnr_parsing_feil" ,
45
+ )
46
+ }
47
+
48
+ return @withSaksbehandler
49
+ }
50
+
51
+ val fnr = Either .catch { Fnr .fromString(fnrStr) }.getOrElse {
52
+ when (it) {
53
+ is UgyldigFnrException -> call.respond400BadRequest(
54
+ melding = " Forventer at fødselsnummeret er 11 siffer" ,
55
+ kode = " ugyldig_fnr" ,
56
+ )
57
+
58
+ else -> call.respond500InternalServerError(
59
+ melding = " Ukjent feil ved lesing av fødselsnummeret" ,
60
+ kode = " fnr_parsing_feil" ,
61
+ )
62
+ }
40
63
return @withSaksbehandler
41
64
}
42
65
val correlationId = call.correlationId()
0 commit comments