-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NAV-21852: Ruter journalpost til 2103 Vikafossen (#1155)
* NAV-21852: Ruter journalpost til 2103 Vikafossen * Endret på litt feilmeldinger * NAV-21852: Legger inn logikk for å hente søker og barna fra søknad basert på journalpostid * NAV-21852: Ordnet harAdresseGradering sjekk * NAV-21852: Begynte å skrive enhetstest, splittet opp logikk i egen service * NAV-21852: La til litt mer logikk i testene * NAV-21852: Skriver test for SøknadFraJournalpostService for BA-søknader, begynner å fikse tester som brakk + masse ktlint fikser * NAV-21852: Flytter enhetsnummertester fra OppgaveMapperTest til egen testfil * NAV-21852: Legger på testing for adressebeskyttelse i enhetsnummerservice * NAV-21852: Oppdaterer logikk for å håndtere papirsøknader * NAV-21852: Fikset tester som feilet * NAV-21852: Ryddet bort ubrukt kode * Fikset feilende tester etter endring i utledning av enhetsnummer * ktlint * NAV-21852: Refaktorerte SøknadsidenterService metodene til å inkludere både barn og søker * NAV-21852: Skrev manglende enhetstester og kjørte ktlint * NAV-21852: La til en TODO * NAV-21852: Forenklet logikk * NAV-21852: Reverterte logikk fra forrige commit * NAV-21852: La til enhetstest for papirsøknad * Endrer logikk for å finne digitale søknader + skrevet flere tester for digitale søknader uten adressebeskyttelse * Legger til riktig brevkode på noen av testene for å simulere en ordentlig digital søknad * Legger til feature-toggle for å bruke den nye enhetsnummerservicen * NAV-21852: Endrer exception-håndtering for journalpost.bruker lik null og legger på litt ekstra logging * NAV-21852: Retter opp kode basert på PR kommentarer * NAV-21852: La til en "bedre" feilmelding for når bruker på journalpost er null * NAV-21852: Rettet opp navn til repo-metoder basert på PR tilbakemeldinger * NAV-21852: Kjørte ktlint --------- Co-authored-by: bragejahren <brage.ekroll.jahren@nav.no> Co-authored-by: Hanne Olsen <hanne.olsen@nav.no>
- Loading branch information
1 parent
b53a012
commit a3bae8b
Showing
23 changed files
with
1,249 additions
and
188 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
115 changes: 115 additions & 0 deletions
115
src/main/kotlin/no/nav/familie/baks/mottak/integrasjoner/EnhetsnummerService.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
package no.nav.familie.baks.mottak.integrasjoner | ||
|
||
import no.nav.familie.kontrakter.felles.Tema | ||
import org.slf4j.Logger | ||
import org.slf4j.LoggerFactory | ||
import org.springframework.stereotype.Service | ||
import java.util.Locale | ||
|
||
@Service | ||
class EnhetsnummerService( | ||
private val hentEnhetClient: HentEnhetClient, | ||
private val pdlClient: PdlClient, | ||
private val søknadsidenterService: SøknadsidenterService, | ||
private val arbeidsfordelingClient: ArbeidsfordelingClient, | ||
) { | ||
private val logger = LoggerFactory.getLogger(this::class.java) | ||
private val secureLogger: Logger = LoggerFactory.getLogger("secureLogger") | ||
|
||
fun hentEnhetsnummer( | ||
journalpost: Journalpost, | ||
): String? { | ||
if (journalpost.tema == null) { | ||
logger.error("Journalpost tema er null for journalpost ${journalpost.journalpostId}.") | ||
throw IllegalStateException("Tema er null") | ||
} | ||
|
||
if (journalpost.bruker == null) { | ||
logger.error("Bruker for journalpost ${journalpost.journalpostId} er null. Usikker på hvordan dette burde håndteres. Se SecureLogs.") | ||
secureLogger.error("Bruker for journalpost $journalpost er null. Usikker på hvordan dette burde håndteres.") | ||
throw IllegalStateException("Bruker for journalpost ${journalpost.journalpostId} er null. Usikker på hvordan dette burde håndteres.") | ||
} | ||
|
||
val erDigitalSøknad = journalpost.erDigitalKanal() && (journalpost.erKontantstøtteSøknad() || journalpost.erBarnetrygdSøknad()) | ||
val tema = Tema.valueOf(journalpost.tema) | ||
|
||
val (søkersIdent, barnasIdenter) = | ||
when (tema) { | ||
Tema.BAR -> finnIdenterForBarnetrygd(tema, journalpost.bruker, journalpost.journalpostId, erDigitalSøknad) | ||
Tema.KON -> finnIdenterForKontantstøtte(tema, journalpost.bruker, journalpost.journalpostId, erDigitalSøknad) | ||
Tema.ENF, | ||
Tema.OPP, | ||
-> { | ||
throw IllegalStateException("Støtter ikke tema $tema") | ||
} | ||
} | ||
|
||
val alleIdenter = barnasIdenter + søkersIdent | ||
|
||
val erEnAvPersoneneStrengtFortrolig = | ||
alleIdenter | ||
.map { pdlClient.hentPerson(it, "hentperson-med-adressebeskyttelse", tema) } | ||
.flatMap { it.adressebeskyttelse } | ||
.any { it.gradering.erStrengtFortrolig() } | ||
|
||
return when { | ||
erEnAvPersoneneStrengtFortrolig -> "2103" | ||
journalpost.journalforendeEnhet == "2101" -> "4806" // Enhet 2101 er nedlagt. Rutes til 4806 | ||
journalpost.journalforendeEnhet == "4847" -> "4817" // Enhet 4847 skal legges ned. Rutes til 4817 | ||
erDigitalSøknad -> | ||
arbeidsfordelingClient.hentBehandlendeEnhetPåIdent(søkersIdent, tema).enhetId | ||
journalpost.journalforendeEnhet.isNullOrBlank() -> null | ||
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).status.uppercase(Locale.getDefault()) == "NEDLAGT" -> null | ||
hentEnhetClient.hentEnhet(journalpost.journalforendeEnhet).oppgavebehandler -> journalpost.journalforendeEnhet | ||
else -> { | ||
logger.warn("Enhet ${journalpost.journalforendeEnhet} kan ikke ta i mot oppgaver") | ||
null | ||
} | ||
} | ||
} | ||
|
||
private fun finnIdenterForKontantstøtte( | ||
tema: Tema, | ||
bruker: Bruker, | ||
journalpostId: String, | ||
erDigitalSøknad: Boolean, | ||
): Pair<String, List<String>> = | ||
if (erDigitalSøknad) { | ||
søknadsidenterService.hentIdenterForKontantstøtteViaJournalpost(journalpostId) | ||
} else { | ||
Pair( | ||
tilPersonIdent( | ||
bruker, | ||
tema, | ||
), | ||
emptyList(), | ||
) | ||
} | ||
|
||
private fun finnIdenterForBarnetrygd( | ||
tema: Tema, | ||
bruker: Bruker, | ||
journalpostId: String, | ||
erDigitalSøknad: Boolean, | ||
): Pair<String, List<String>> = | ||
if (erDigitalSøknad) { | ||
søknadsidenterService.hentIdenterForBarnetrygdViaJournalpost(journalpostId) | ||
} else { | ||
Pair( | ||
tilPersonIdent( | ||
bruker, | ||
tema, | ||
), | ||
emptyList(), | ||
) | ||
} | ||
|
||
private fun tilPersonIdent( | ||
bruker: Bruker, | ||
tema: Tema, | ||
): String = | ||
when (bruker.type) { | ||
BrukerIdType.AKTOERID -> pdlClient.hentPersonident(bruker.id, tema) | ||
else -> bruker.id | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
71 changes: 71 additions & 0 deletions
71
src/main/kotlin/no/nav/familie/baks/mottak/integrasjoner/SøknadsidenterService.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
package no.nav.familie.baks.mottak.integrasjoner | ||
|
||
import no.nav.familie.baks.mottak.søknad.barnetrygd.BarnetrygdSøknadService | ||
import no.nav.familie.baks.mottak.søknad.barnetrygd.domene.BarnetrygdSøknadV8 | ||
import no.nav.familie.baks.mottak.søknad.barnetrygd.domene.BarnetrygdSøknadV9 | ||
import no.nav.familie.baks.mottak.søknad.kontantstøtte.KontantstøtteSøknadService | ||
import no.nav.familie.baks.mottak.søknad.kontantstøtte.domene.KontantstøtteSøknadV4 | ||
import no.nav.familie.baks.mottak.søknad.kontantstøtte.domene.KontantstøtteSøknadV5 | ||
import org.springframework.stereotype.Service | ||
|
||
@Service | ||
class SøknadsidenterService( | ||
private val barnetrygdSøknadService: BarnetrygdSøknadService, | ||
private val kontantstøtteSøknadService: KontantstøtteSøknadService, | ||
) { | ||
fun hentIdenterForKontantstøtteViaJournalpost(journalpostId: String): Pair<String, List<String>> { | ||
val versjonertSøknad = | ||
kontantstøtteSøknadService | ||
.hentDBKontantstøtteSøknadForJournalpost(journalpostId) | ||
.hentVersjonertKontantstøtteSøknad() | ||
return when (versjonertSøknad) { | ||
is KontantstøtteSøknadV4 -> | ||
Pair( | ||
versjonertSøknad.kontantstøtteSøknad.søker.ident.verdi.values | ||
.first(), | ||
versjonertSøknad.kontantstøtteSøknad.barn.map { | ||
it.ident.verdi.values | ||
.first() | ||
}, | ||
) | ||
|
||
is KontantstøtteSøknadV5 -> | ||
Pair( | ||
versjonertSøknad.kontantstøtteSøknad.søker.ident.verdi.values | ||
.first(), | ||
versjonertSøknad.kontantstøtteSøknad.barn.map { | ||
it.ident.verdi.values | ||
.first() | ||
}, | ||
) | ||
} | ||
} | ||
|
||
fun hentIdenterForBarnetrygdViaJournalpost(journalpostId: String): Pair<String, List<String>> { | ||
val versjonertSøknad = | ||
barnetrygdSøknadService | ||
.hentDBSøknadFraJournalpost(journalpostId) | ||
.hentVersjonertSøknad() | ||
return when (versjonertSøknad) { | ||
is BarnetrygdSøknadV8 -> | ||
Pair( | ||
versjonertSøknad.barnetrygdSøknad.søker.ident.verdi.values | ||
.first(), | ||
versjonertSøknad.barnetrygdSøknad.barn.map { | ||
it.ident.verdi.values | ||
.first() | ||
}, | ||
) | ||
|
||
is BarnetrygdSøknadV9 -> | ||
Pair( | ||
versjonertSøknad.barnetrygdSøknad.søker.ident.verdi.values | ||
.first(), | ||
versjonertSøknad.barnetrygdSøknad.barn.map { | ||
it.ident.verdi.values | ||
.first() | ||
}, | ||
) | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
src/main/resources/pdl/hentperson-med-adressebeskyttelse.graphql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
query($ident: ID!) { | ||
person: hentPerson(ident: $ident) { | ||
adressebeskyttelse { | ||
gradering | ||
} | ||
} | ||
} |
Oops, something went wrong.