Skip to content

Commit 984d42e

Browse files
committed
Legg til Either på hentSakForFnr
1 parent 9e52cc1 commit 984d42e

File tree

5 files changed

+43
-6
lines changed

5 files changed

+43
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package no.nav.tiltakspenger.vedtak.routes
2+
3+
data class ErrorJson(
4+
val melding: String,
5+
val kode: String,
6+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package no.nav.tiltakspenger.vedtak.routes
2+
3+
object Standardfeil {
4+
fun fantIkkeFnr(): ErrorJson = ErrorJson(
5+
"Fant ikke fødselsnummer",
6+
"fant_ikke_fnr",
7+
)
8+
}

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/routes/sak/SakRoutes.kt

+13-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import no.nav.tiltakspenger.saksbehandling.domene.sak.Saksnummer
1414
import no.nav.tiltakspenger.saksbehandling.service.sak.SakService
1515
import no.nav.tiltakspenger.vedtak.auditlog.AuditLogEvent
1616
import no.nav.tiltakspenger.vedtak.auditlog.AuditService
17+
import no.nav.tiltakspenger.vedtak.routes.Standardfeil
1718
import no.nav.tiltakspenger.vedtak.routes.parameter
1819
import no.nav.tiltakspenger.vedtak.tilgang.InnloggetSaksbehandlerProvider
1920

@@ -55,7 +56,17 @@ fun Route.sakRoutes(
5556
callId = call.callId,
5657
)
5758

58-
val sakDTO = sakService.hentForFnr(fnr, saksbehandler).toDTO()
59-
call.respond(message = sakDTO, status = HttpStatusCode.OK)
59+
sakService.hentForFnr(fnr, saksbehandler).fold(
60+
ifLeft = {
61+
call.respond(
62+
message = Standardfeil.fantIkkeFnr(),
63+
status = HttpStatusCode.BadRequest,
64+
)
65+
},
66+
ifRight = {
67+
val sakDTO = it.toDTO()
68+
call.respond(message = sakDTO, status = HttpStatusCode.OK)
69+
},
70+
)
6071
}
6172
}

domene/src/main/kotlin/no/nav/tiltakspenger/saksbehandling/service/sak/SakService.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import no.nav.tiltakspenger.libs.common.SøknadId
99
import no.nav.tiltakspenger.saksbehandling.domene.benk.Saksoversikt
1010
import no.nav.tiltakspenger.saksbehandling.domene.sak.Sak
1111
import no.nav.tiltakspenger.saksbehandling.domene.sak.Saksnummer
12+
import no.nav.tiltakspenger.saksbehandling.service.sak.SakServiceImpl.FantIkkeFnr
1213
import no.nav.tiltakspenger.saksbehandling.service.sak.SakServiceImpl.KanIkkeStarteFørstegangsbehandling
1314

1415
interface SakService {
@@ -30,7 +31,7 @@ interface SakService {
3031
fun hentForFnr(
3132
fnr: Fnr,
3233
saksbehandler: Saksbehandler,
33-
): Sak
34+
): Either<FantIkkeFnr, Sak>
3435

3536
fun hentFnrForSakId(sakId: SakId): Fnr?
3637

domene/src/main/kotlin/no/nav/tiltakspenger/saksbehandling/service/sak/SakServiceImpl.kt

+14-3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import no.nav.tiltakspenger.saksbehandling.ports.SkjermingGateway
3030
import no.nav.tiltakspenger.saksbehandling.ports.StatistikkSakRepo
3131
import no.nav.tiltakspenger.saksbehandling.ports.TiltakGateway
3232
import no.nav.tiltakspenger.saksbehandling.service.SøknadService
33+
import no.nav.tiltakspenger.saksbehandling.service.sak.SakServiceImpl.FantIkkeFnr
3334
import no.nav.tiltakspenger.saksbehandling.service.sak.SakServiceImpl.KanIkkeStarteFørstegangsbehandling.HarAlleredeStartetBehandlingen
3435
import no.nav.tiltakspenger.saksbehandling.service.sak.SakServiceImpl.KanIkkeStarteFørstegangsbehandling.HarIkkeTilgangTilPerson
3536
import no.nav.tiltakspenger.saksbehandling.service.statistikk.sak.opprettBehandlingMapper
@@ -138,17 +139,27 @@ class SakServiceImpl(
138139
return sak
139140
}
140141

141-
override fun hentForFnr(fnr: Fnr, saksbehandler: Saksbehandler): Sak {
142+
data class ErrorTilFrontend(
143+
val melding: String,
144+
val kode: String,
145+
) : RuntimeException()
146+
147+
data object FantIkkeFnr
148+
149+
override fun hentForFnr(
150+
fnr: Fnr,
151+
saksbehandler: Saksbehandler,
152+
): Either<FantIkkeFnr, Sak> {
142153
val saker = sakRepo.hentForFnr(fnr)
143-
if (saker.saker.isEmpty()) throw IkkeFunnetException("Fant ikke sak for fnr $fnr")
154+
if (saker.saker.isEmpty()) FantIkkeFnr.left()
144155
if (saker.size > 1) throw IllegalStateException("Vi støtter ikke flere saker per søker i piloten. fnr: $fnr")
145156

146157
val sak = saker.single()
147158
if (!sak.personopplysninger.harTilgang(saksbehandler)) {
148159
throw TilgangException("Saksbehandler ${saksbehandler.navIdent} har ikke tilgang til sak på fnr $fnr")
149160
}
150161

151-
return sak
162+
return sak.right()
152163
}
153164

154165
override fun hentFnrForSakId(sakId: SakId): Fnr? = sakRepo.hentFnrForSakId(sakId)

0 commit comments

Comments
 (0)