-
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.
Browse files
Browse the repository at this point in the history
…1017) * Setter opp integrasjon mot familie-baks-mottak * Legger til Dokumenttype.KONTANTSTØTTE_VEDTAK_ENDRET i Dokumenttype.tilMetadata() etter oppdatering av familie-kontrakter * Nytt endepunkt for å hente alle journalposter for bruker med tilgangsstyring * Renamet MottakRestClient -> BaksMottakRestClient og MottakService -> BaksMottakService * Fjerner integrasjon mot baks-mottak og henter søknad fra journalpost isteden * Oppdatert familie-kontrakter versjon og gjort nødvendige endringer etter oppdatering * Liten justering * Justeringer etter tilbakemelding * Erstatter assertNotNull og assertEquals med assertThat
- Loading branch information
1 parent
4a17c8f
commit 3cfb7f6
Showing
16 changed files
with
766 additions
and
8 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
43 changes: 43 additions & 0 deletions
43
src/main/java/no/nav/familie/integrasjoner/baks/søknad/BaksVersjonertSøknadService.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,43 @@ | ||
package no.nav.familie.integrasjoner.baks.søknad | ||
|
||
import com.fasterxml.jackson.module.kotlin.readValue | ||
import no.nav.familie.integrasjoner.client.rest.SafHentDokumentRestClient | ||
import no.nav.familie.kontrakter.ba.søknad.VersjonertBarnetrygdSøknad | ||
import no.nav.familie.kontrakter.felles.Tema | ||
import no.nav.familie.kontrakter.felles.journalpost.Dokumentvariantformat | ||
import no.nav.familie.kontrakter.felles.journalpost.Journalpost | ||
import no.nav.familie.kontrakter.felles.objectMapper | ||
import no.nav.familie.kontrakter.felles.søknad.BaksSøknadBase | ||
import no.nav.familie.kontrakter.ks.søknad.VersjonertKontantstøtteSøknad | ||
import org.springframework.stereotype.Service | ||
|
||
@Service | ||
class BaksVersjonertSøknadService( | ||
private val safHentDokumentRestClient: SafHentDokumentRestClient, | ||
) { | ||
fun hentBaksSøknadBase( | ||
journalpost: Journalpost, | ||
tema: Tema, | ||
): BaksSøknadBase = | ||
when (tema) { | ||
Tema.KON -> hentVersjonertKontantstøtteSøknad(journalpost).baksSøknadBase | ||
Tema.BAR -> hentVersjonertBarnetrygdSøknad(journalpost).baksSøknadBase | ||
else -> throw IllegalArgumentException("Støtter ikke deserialisering av søknad for tema $tema") | ||
} | ||
|
||
fun hentVersjonertBarnetrygdSøknad( | ||
journalpost: Journalpost, | ||
): VersjonertBarnetrygdSøknad = objectMapper.readValue<VersjonertBarnetrygdSøknad>(hentSøknadJson(journalpost, Tema.BAR)) | ||
|
||
fun hentVersjonertKontantstøtteSøknad( | ||
journalpost: Journalpost, | ||
): VersjonertKontantstøtteSøknad = objectMapper.readValue<VersjonertKontantstøtteSøknad>(hentSøknadJson(journalpost, Tema.KON)) | ||
|
||
private fun hentSøknadJson( | ||
journalpost: Journalpost, | ||
tema: Tema, | ||
): String { | ||
val dokumentInfoId = journalpost.dokumenter!!.single { it.erDigitalSøknad(tema) }.dokumentInfoId | ||
return safHentDokumentRestClient.hentDokument(journalpostId = journalpost.journalpostId, dokumentInfoId = dokumentInfoId, variantFormat = Dokumentvariantformat.ORIGINAL.name).decodeToString() | ||
} | ||
} |
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
61 changes: 61 additions & 0 deletions
61
...main/java/no/nav/familie/integrasjoner/journalpost/BaksTilgangsstyrtJournalpostService.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,61 @@ | ||
package no.nav.familie.integrasjoner.journalpost | ||
|
||
import no.nav.familie.integrasjoner.baks.søknad.BaksVersjonertSøknadService | ||
import no.nav.familie.integrasjoner.tilgangskontroll.TilgangskontrollService | ||
import no.nav.familie.kontrakter.felles.Tema | ||
import no.nav.familie.kontrakter.felles.journalpost.Journalpost | ||
import no.nav.familie.kontrakter.felles.journalpost.TilgangsstyrtJournalpost | ||
import no.nav.familie.kontrakter.felles.søknad.MissingVersionException | ||
import no.nav.familie.kontrakter.felles.søknad.UnsupportedVersionException | ||
import org.slf4j.LoggerFactory | ||
import org.springframework.stereotype.Service | ||
|
||
@Service | ||
class BaksTilgangsstyrtJournalpostService( | ||
private val baksVersjonertSøknadService: BaksVersjonertSøknadService, | ||
private val tilgangskontrollService: TilgangskontrollService, | ||
) { | ||
fun mapTilTilgangsstyrteJournalposter(journalposter: List<Journalpost>): List<TilgangsstyrtJournalpost> = | ||
journalposter.map { journalpost -> | ||
TilgangsstyrtJournalpost( | ||
journalpost = journalpost, | ||
harTilgang = harTilgangTilJournalpost(journalpost = journalpost), | ||
) | ||
} | ||
|
||
private fun harTilgangTilJournalpost(journalpost: Journalpost): Boolean { | ||
val tema = journalpost.tema?.let { tema -> Tema.valueOf(tema) } | ||
if (tema == null) { | ||
return true | ||
} | ||
return if (journalpost.harDigitalSøknad(tema)) { | ||
try { | ||
val baksSøknadBase = baksVersjonertSøknadService.hentBaksSøknadBase(journalpost, tema) | ||
tilgangskontrollService | ||
.sjekkTilgangTilBrukere( | ||
personIdenter = baksSøknadBase.personerISøknad(), | ||
tema = tema, | ||
).all { tilgang -> tilgang.harTilgang } | ||
} catch (e: MissingVersionException) { | ||
logger.warn("Får ikke sjekket tilgang til digital søknad tilknyttet journalpost ${journalpost.journalpostId}.") | ||
secureLogger.warn("Feil ved deserialisering av digital søknad.", e) | ||
// For gamle søknader, før 'kontraktVersjon' ble innført, har vi ingen måte å bestemme konkret klasse å deserialisere til. | ||
// Gir tilgang basert på antagelsen om at fagsak relatert til gamle søknader allerede er satt til Vikafossen dersom det finnes kode 6, 7 eller 19 personer i søknad. | ||
true | ||
} catch (e: UnsupportedVersionException) { | ||
logger.error("Får ikke sjekket tilgang til digital søknad tilknyttet journalpost ${journalpost.journalpostId}, da vi mangler støtte for kontraktversjon.") | ||
secureLogger.error("Feil ved deserialisering av digital søknad.", e) | ||
// Hindrer tilgang og logger Error da vi burde kunne deserialisere alle baks-søknader med feltet `kontraktVersjon`. | ||
false | ||
} | ||
} else { | ||
// Vi har kun mulighet til å sjekke tilganger for digitale søknader, da innholdet i papirsøknader er ukjent. | ||
true | ||
} | ||
} | ||
|
||
companion object { | ||
private val logger = LoggerFactory.getLogger(BaksTilgangsstyrtJournalpostService::class.java) | ||
private val secureLogger = LoggerFactory.getLogger("secureLogger") | ||
} | ||
} |
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
182 changes: 182 additions & 0 deletions
182
src/test/java/no/nav/familie/integrasjoner/baks/søknad/BaksSøknad.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,182 @@ | ||
package no.nav.familie.integrasjoner.baks.søknad | ||
|
||
import no.nav.familie.kontrakter.ba.søknad.v4.Søknadstype | ||
import no.nav.familie.kontrakter.ba.søknad.v9.BarnetrygdSøknad | ||
import no.nav.familie.kontrakter.felles.søknad.Søknadsfelt | ||
import no.nav.familie.kontrakter.ks.søknad.v1.RegistrertBostedType | ||
import no.nav.familie.kontrakter.ks.søknad.v1.SIVILSTANDTYPE | ||
import no.nav.familie.kontrakter.ks.søknad.v1.SøknadAdresse | ||
import no.nav.familie.kontrakter.ks.søknad.v5.KontantstøtteSøknad | ||
import no.nav.familie.kontrakter.ba.søknad.v8.Barn as BarnetrygdBarn | ||
import no.nav.familie.kontrakter.ba.søknad.v8.Søker as BarnetrygdSøker | ||
import no.nav.familie.kontrakter.ks.søknad.v4.Barn as KontantstøtteBarn | ||
import no.nav.familie.kontrakter.ks.søknad.v4.Søker as KontantstøtteSøker | ||
|
||
fun lagKontantstøtteSøknad( | ||
søkerFnr: String, | ||
barnFnr: String, | ||
): KontantstøtteSøknad = | ||
KontantstøtteSøknad( | ||
kontraktVersjon = 5, | ||
søker = lagKontantstøtteSøker(søkerFnr), | ||
barn = listOf(lagKontantstøtteBarn(barnFnr)), | ||
antallEøsSteg = 0, | ||
dokumentasjon = emptyList(), | ||
teksterTilPdf = emptyMap(), | ||
originalSpråk = "NB", | ||
finnesPersonMedAdressebeskyttelse = false, | ||
erNoenAvBarnaFosterbarn = lagStringSøknadsfelt("Nei"), | ||
søktAsylForBarn = lagStringSøknadsfelt("Nei"), | ||
oppholderBarnSegIInstitusjon = lagStringSøknadsfelt("Nei"), | ||
barnOppholdtSegTolvMndSammenhengendeINorge = lagStringSøknadsfelt("Ja"), | ||
erBarnAdoptert = lagStringSøknadsfelt("Nei"), | ||
mottarKontantstøtteForBarnFraAnnetEøsland = lagStringSøknadsfelt("Nei"), | ||
harEllerTildeltBarnehageplass = lagStringSøknadsfelt("Nei"), | ||
erAvdødPartnerForelder = null, | ||
) | ||
|
||
fun <T> lagStringSøknadsfelt(verdi: T): Søknadsfelt<T> = | ||
Søknadsfelt( | ||
label = mapOf("no" to ""), | ||
verdi = mapOf("no" to verdi), | ||
) | ||
|
||
fun lagKontantstøtteSøker(fnr: String): KontantstøtteSøker = | ||
KontantstøtteSøker( | ||
harEøsSteg = false, | ||
ident = lagStringSøknadsfelt(fnr), | ||
navn = lagStringSøknadsfelt("Navn"), | ||
statsborgerskap = lagStringSøknadsfelt(listOf("Norge")), | ||
adresse = | ||
lagStringSøknadsfelt( | ||
SøknadAdresse( | ||
adressenavn = "Gate", | ||
postnummer = null, | ||
husbokstav = null, | ||
bruksenhetsnummer = null, | ||
husnummer = null, | ||
poststed = null, | ||
), | ||
), | ||
adressebeskyttelse = false, | ||
sivilstand = lagStringSøknadsfelt(SIVILSTANDTYPE.UOPPGITT), | ||
borPåRegistrertAdresse = null, | ||
værtINorgeITolvMåneder = lagStringSøknadsfelt("Ja"), | ||
planleggerÅBoINorgeTolvMnd = lagStringSøknadsfelt("Ja"), | ||
yrkesaktivFemÅr = lagStringSøknadsfelt("Ja"), | ||
erAsylsøker = lagStringSøknadsfelt("Nei"), | ||
utenlandsoppholdUtenArbeid = lagStringSøknadsfelt("Nei"), | ||
utenlandsperioder = emptyList(), | ||
arbeidIUtlandet = lagStringSøknadsfelt("Nei"), | ||
arbeidsperioderUtland = emptyList(), | ||
mottarUtenlandspensjon = lagStringSøknadsfelt("Nei"), | ||
pensjonsperioderUtland = emptyList(), | ||
arbeidINorge = lagStringSøknadsfelt("Nei"), | ||
arbeidsperioderNorge = emptyList(), | ||
pensjonNorge = lagStringSøknadsfelt("Nei"), | ||
pensjonsperioderNorge = emptyList(), | ||
andreUtbetalingsperioder = emptyList(), | ||
idNummer = emptyList(), | ||
andreUtbetalinger = null, | ||
adresseISøkeperiode = null, | ||
) | ||
|
||
fun lagKontantstøtteBarn(fnr: String): KontantstøtteBarn = | ||
KontantstøtteBarn( | ||
harEøsSteg = false, | ||
ident = lagStringSøknadsfelt(fnr), | ||
navn = lagStringSøknadsfelt(""), | ||
registrertBostedType = lagStringSøknadsfelt(RegistrertBostedType.REGISTRERT_SOKERS_ADRESSE), | ||
alder = null, | ||
teksterTilPdf = emptyMap(), | ||
erFosterbarn = lagStringSøknadsfelt("Nei"), | ||
oppholderSegIInstitusjon = lagStringSøknadsfelt("Nei"), | ||
erAdoptert = lagStringSøknadsfelt("Nei"), | ||
erAsylsøker = lagStringSøknadsfelt("Nei"), | ||
boddMindreEnn12MndINorge = lagStringSøknadsfelt("Nei"), | ||
kontantstøtteFraAnnetEøsland = lagStringSøknadsfelt("Nei"), | ||
harBarnehageplass = lagStringSøknadsfelt("Nei"), | ||
andreForelderErDød = null, | ||
utbetaltForeldrepengerEllerEngangsstønad = null, | ||
mottarEllerMottokEøsKontantstøtte = null, | ||
pågåendeSøknadFraAnnetEøsLand = null, | ||
pågåendeSøknadHvilketLand = null, | ||
planleggerÅBoINorge12Mnd = null, | ||
eøsKontantstøttePerioder = emptyList(), | ||
barnehageplassPerioder = emptyList(), | ||
borFastMedSøker = lagStringSøknadsfelt("Ja"), | ||
foreldreBorSammen = null, | ||
søkerDeltKontantstøtte = null, | ||
andreForelder = null, | ||
utenlandsperioder = emptyList(), | ||
søkersSlektsforhold = null, | ||
søkersSlektsforholdSpesifisering = null, | ||
borMedAndreForelder = null, | ||
borMedOmsorgsperson = null, | ||
adresse = null, | ||
omsorgsperson = null, | ||
idNummer = emptyList(), | ||
) | ||
|
||
fun lagBarnetrygdSøknad( | ||
søkerFnr: String, | ||
barnFnr: String, | ||
): BarnetrygdSøknad = | ||
BarnetrygdSøknad( | ||
kontraktVersjon = 9, | ||
søker = lagBarnetrygdSøker(søkerFnr), | ||
barn = listOf(lagBarnetrygdBarn(barnFnr)), | ||
antallEøsSteg = 0, | ||
dokumentasjon = emptyList(), | ||
originalSpråk = "NB", | ||
finnesPersonMedAdressebeskyttelse = false, | ||
søknadstype = Søknadstype.ORDINÆR, | ||
spørsmål = emptyMap(), | ||
teksterUtenomSpørsmål = emptyMap(), | ||
) | ||
|
||
fun lagBarnetrygdSøker(fnr: String): BarnetrygdSøker = | ||
BarnetrygdSøker( | ||
harEøsSteg = false, | ||
ident = lagStringSøknadsfelt(fnr), | ||
navn = lagStringSøknadsfelt("Navn"), | ||
statsborgerskap = lagStringSøknadsfelt(listOf("Norge")), | ||
adresse = | ||
lagStringSøknadsfelt( | ||
no.nav.familie.kontrakter.ba.søknad.v1.SøknadAdresse( | ||
adressenavn = "Gate", | ||
postnummer = null, | ||
husbokstav = null, | ||
bruksenhetsnummer = null, | ||
husnummer = null, | ||
poststed = null, | ||
), | ||
), | ||
adressebeskyttelse = false, | ||
sivilstand = lagStringSøknadsfelt(no.nav.familie.kontrakter.ba.søknad.v1.SIVILSTANDTYPE.UOPPGITT), | ||
utenlandsperioder = emptyList(), | ||
arbeidsperioderUtland = emptyList(), | ||
pensjonsperioderUtland = emptyList(), | ||
arbeidsperioderNorge = emptyList(), | ||
pensjonsperioderNorge = emptyList(), | ||
andreUtbetalingsperioder = emptyList(), | ||
idNummer = emptyList(), | ||
spørsmål = emptyMap(), | ||
nåværendeSamboer = null, | ||
tidligereSamboere = emptyList(), | ||
) | ||
|
||
fun lagBarnetrygdBarn(fnr: String): BarnetrygdBarn = | ||
BarnetrygdBarn( | ||
harEøsSteg = false, | ||
ident = lagStringSøknadsfelt(fnr), | ||
navn = lagStringSøknadsfelt(""), | ||
registrertBostedType = lagStringSøknadsfelt(no.nav.familie.kontrakter.ba.søknad.v5.RegistrertBostedType.REGISTRERT_SOKERS_ADRESSE), | ||
alder = null, | ||
andreForelder = null, | ||
utenlandsperioder = emptyList(), | ||
omsorgsperson = null, | ||
idNummer = emptyList(), | ||
spørsmål = emptyMap(), | ||
eøsBarnetrygdsperioder = emptyList(), | ||
) |
Oops, something went wrong.