From 02f23162c8cd25057593cbc2992b3b944b087d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Thu, 19 Dec 2024 12:47:34 +0100 Subject: [PATCH 1/5] FeltMap typedefinert --- .../ef/mottak/integration/PdfClient.kt | 3 +- .../mottak/integration/PdfKvitteringClient.kt | 3 +- .../ef/mottak/repository/domain/FeltMap.kt | 20 ++++++ .../ef/mottak/service/Feltformaterer.kt | 21 +++--- .../ef/mottak/service/PdfKvitteringService.kt | 11 +-- .../familie/ef/mottak/service/PdfService.kt | 3 +- .../service/S\303\270knadTilFeltMap.kt" | 66 ++++++++--------- .../service/S\303\270knadTreeWalker.kt" | 55 +++++++------- .../ef/mottak/mockapi/MockConfiguration.kt | 3 +- .../ef/mottak/service/FeltformatererTest.kt | 21 +++--- .../service/S\303\270knadTilFeltMapTest.kt" | 71 +++++++++---------- .../service/S\303\270knadTreeWalkerTest.kt" | 29 ++++---- 12 files changed, 169 insertions(+), 137 deletions(-) create mode 100644 src/main/kotlin/no/nav/familie/ef/mottak/repository/domain/FeltMap.kt rename "src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapper.kt" => "src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" (78%) rename "src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapperTest.kt" => "src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMapTest.kt" (61%) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfClient.kt b/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfClient.kt index 36f3991be..e95ca3d63 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfClient.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfClient.kt @@ -1,6 +1,7 @@ package no.nav.familie.ef.mottak.integration import no.nav.familie.ef.mottak.config.PdfgeneratorConfig +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.ef.mottak.util.medContentTypeJsonUTF8 import no.nav.familie.http.client.AbstractRestClient import org.springframework.beans.factory.annotation.Qualifier @@ -14,7 +15,7 @@ class PdfClient( @Qualifier("restTemplateUnsecured") operations: RestOperations, private val pdfgeneratorConfig: PdfgeneratorConfig, ) : AbstractRestClient(operations, "pdf") { - fun lagPdf(labelValueJson: Map): ByteArray { + fun lagPdf(labelValueJson: FeltMap): ByteArray { val sendInnUri = DefaultUriBuilderFactory().uriString(pdfgeneratorConfig.url).path("/api/generer-soknad").build() return postForEntity(sendInnUri, labelValueJson, HttpHeaders().medContentTypeJsonUTF8()) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfKvitteringClient.kt b/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfKvitteringClient.kt index 3cbbb9ce4..2b5c7997c 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfKvitteringClient.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/integration/PdfKvitteringClient.kt @@ -1,5 +1,6 @@ package no.nav.familie.ef.mottak.integration +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.ef.mottak.util.medContentTypeJsonUTF8 import no.nav.familie.http.client.AbstractPingableRestClient import org.springframework.beans.factory.annotation.Qualifier @@ -24,7 +25,7 @@ class PdfKvitteringClient( .build() .toUri() - fun opprettPdf(feltMap: Map): ByteArray { + fun opprettPdf(feltMap: FeltMap): ByteArray { val uri = UriComponentsBuilder .fromUri(uri) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/repository/domain/FeltMap.kt b/src/main/kotlin/no/nav/familie/ef/mottak/repository/domain/FeltMap.kt new file mode 100644 index 000000000..c1bb9a471 --- /dev/null +++ b/src/main/kotlin/no/nav/familie/ef/mottak/repository/domain/FeltMap.kt @@ -0,0 +1,20 @@ +package no.nav.familie.ef.mottak.repository.domain + +import com.fasterxml.jackson.annotation.JsonInclude +import jakarta.validation.constraints.NotNull + +data class FeltMap( + @field:NotNull(message = "Label kan ikke være null") + val label: String, + @field:NotNull(message = "Verdiliste kan ikke være null") + val verdiliste: List, +) + +@JsonInclude(JsonInclude.Include.NON_NULL) +data class VerdilisteElement( + val label: String, + val visningsVariant: String? = null, + val verdi: String? = null, + val verdiliste: List? = null, + val alternativer: String? = null, +) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt index 5d96c94d9..aa8e7d8b2 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt @@ -1,5 +1,6 @@ package no.nav.familie.ef.mottak.service +import no.nav.familie.ef.mottak.repository.domain.VerdilisteElement import no.nav.familie.kontrakter.ef.søknad.Adresse import no.nav.familie.kontrakter.ef.søknad.Datoperiode import no.nav.familie.kontrakter.ef.søknad.MånedÅrPeriode @@ -16,18 +17,20 @@ object Feltformaterer { /** * Håndterer formatering utover vanlig toString for endenodene */ - fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): Map =feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) + fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): VerdilisteElement = feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) - fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): Map { - //skal ekskluderes + fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement { + // skal ekskluderes if (entitet.label == "Jeg har sendt inn denne dokumentasjonen til Nav tidligere" && - entitet.verdi.toString() == "false") { - return emptyMap() + entitet.verdi.toString() == "false" + ) { + // return emptyMap() + return VerdilisteElement(label = "", verdi = "") } return feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) } - fun mapVedlegg(vedleggTitler: List): Map { + fun mapVedlegg(vedleggTitler: List): VerdilisteElement { val verdi = vedleggTitler.joinToString("\n\n") return feltMap("Vedlegg", verdi) } @@ -83,10 +86,10 @@ object Feltformaterer { label: String, verdi: String, alternativer: List? = null, - ): Map = + ): VerdilisteElement = if (alternativer != null) { - mapOf("label" to label, "verdi" to verdi, "alternativer" to alternativer.joinToString(" / ")) + VerdilisteElement(label = label, verdi = verdi, alternativer = alternativer.joinToString(" / ")) } else { - mapOf("label" to label, "verdi" to verdi) + VerdilisteElement(label = label, verdi = verdi) } } diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfKvitteringService.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfKvitteringService.kt index 3822bef1d..5340e8b47 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfKvitteringService.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfKvitteringService.kt @@ -9,6 +9,7 @@ import no.nav.familie.ef.mottak.mapper.SøknadMapper import no.nav.familie.ef.mottak.repository.SøknadRepository import no.nav.familie.ef.mottak.repository.VedleggRepository import no.nav.familie.ef.mottak.repository.domain.EncryptedFile +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.ef.mottak.repository.domain.Søknad import no.nav.familie.kontrakter.ef.søknad.SkjemaForArbeidssøker import no.nav.familie.kontrakter.ef.søknad.SøknadBarnetilsyn @@ -35,23 +36,23 @@ class PdfKvitteringService( private fun lagFeltMap( innsending: Søknad, vedleggTitler: List, - ): Map = + ): FeltMap = when (innsending.dokumenttype) { DOKUMENTTYPE_OVERGANGSSTØNAD -> { val dto = SøknadMapper.toDto(innsending) - SøknadTilGenereltFormatMapper.mapOvergangsstønad(dto, vedleggTitler) + SøknadTilFeltMap.mapOvergangsstønad(dto, vedleggTitler) } DOKUMENTTYPE_BARNETILSYN -> { val dto = SøknadMapper.toDto(innsending) - SøknadTilGenereltFormatMapper.mapBarnetilsyn(dto, vedleggTitler) + SøknadTilFeltMap.mapBarnetilsyn(dto, vedleggTitler) } DOKUMENTTYPE_SKJEMA_ARBEIDSSØKER -> { val dto = SøknadMapper.toDto(innsending) - SøknadTilGenereltFormatMapper.mapSkjemafelter(dto) + SøknadTilFeltMap.mapSkjemafelter(dto) } DOKUMENTTYPE_SKOLEPENGER -> { val dto = SøknadMapper.toDto(innsending) - SøknadTilGenereltFormatMapper.mapSkolepenger(dto, vedleggTitler) + SøknadTilFeltMap.mapSkolepenger(dto, vedleggTitler) } else -> { error("Ukjent eller manglende dokumenttype id: ${innsending.id}") diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfService.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfService.kt index fbeae34f5..7dbf9d6fa 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfService.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/service/PdfService.kt @@ -11,6 +11,7 @@ import no.nav.familie.ef.mottak.repository.SøknadRepository import no.nav.familie.ef.mottak.repository.VedleggRepository import no.nav.familie.ef.mottak.repository.domain.EncryptedFile import no.nav.familie.ef.mottak.repository.domain.Ettersending +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.ef.mottak.repository.domain.Søknad import no.nav.familie.kontrakter.ef.søknad.SkjemaForArbeidssøker import no.nav.familie.kontrakter.ef.søknad.SøknadBarnetilsyn @@ -38,7 +39,7 @@ class PdfService( private fun lagFeltMap( innsending: Søknad, vedleggTitler: List, - ): Map = + ): FeltMap = when (innsending.dokumenttype) { DOKUMENTTYPE_OVERGANGSSTØNAD -> { val dto = SøknadMapper.toDto(innsending) diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapper.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" similarity index 78% rename from "src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapper.kt" rename to "src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index aaf9a66d9..fc9dad5dd 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapper.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -1,6 +1,8 @@ package no.nav.familie.ef.mottak.service import no.nav.familie.ef.mottak.repository.domain.Ettersending +import no.nav.familie.ef.mottak.repository.domain.FeltMap +import no.nav.familie.ef.mottak.repository.domain.VerdilisteElement import no.nav.familie.kontrakter.ef.søknad.Adresse import no.nav.familie.kontrakter.ef.søknad.Datoperiode import no.nav.familie.kontrakter.ef.søknad.Dokumentasjon @@ -22,7 +24,7 @@ import kotlin.reflect.KVisibility import kotlin.reflect.full.declaredMemberProperties import kotlin.reflect.full.primaryConstructor -object SøknadTilGenereltFormatMapper { +object SøknadTilFeltMap { private val endNodes = setOf>( String::class, @@ -43,7 +45,7 @@ object SøknadTilGenereltFormatMapper { fun mapOvergangsstønad( søknad: SøknadOvergangsstønad, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) return feltlisteMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) @@ -52,7 +54,7 @@ object SøknadTilGenereltFormatMapper { fun mapBarnetilsyn( søknad: SøknadBarnetilsyn, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) return feltlisteMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) @@ -61,13 +63,13 @@ object SøknadTilGenereltFormatMapper { fun mapSkolepenger( søknad: SøknadSkolepenger, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) return feltlisteMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } - fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): Map { + fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): FeltMap { val finnFelter = finnFelter(skjema) return feltlisteMap("Skjema for arbeidssøker - 15-08.01", finnFelter) } @@ -75,24 +77,25 @@ object SøknadTilGenereltFormatMapper { fun mapEttersending( ettersending: Ettersending, vedleggTitler: List, - ): Map { + ): FeltMap { val infoMap = - feltlisteMap( - "Ettersending av vedlegg", - listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( - "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + VerdilisteElement( + label = "Ettersending av vedlegg", + verdiliste = + listOf( + Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), + Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), + Feltformaterer.feltMap( + "Dato mottatt", + ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + ), ), - ), ) val vedleggMap = feltlisteMap("Dokumenter vedlagt", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) return feltlisteMap("Ettersending", listOf(infoMap, vedleggMap)) } - private fun finnFelter(entitet: Any): List> { + private fun finnFelter(entitet: Any): List { // Det går ikke å hente elementene i en liste med reflection, så vi traverserer den som vanlig. if (entitet is List) { return entitet @@ -132,38 +135,37 @@ object SøknadTilGenereltFormatMapper { if (entitet.verdi is List<*>) { val verdiliste = entitet.verdi as List<*> - if (verdiliste.isNotEmpty() && verdiliste.first() is String) { + if (verdiliste.firstOrNull() is String) { return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) } } - //skal ekskluderes - if (list.size == 1 && (list[0] as Map<*, *>).isEmpty()) { + // skal ekskluderes + if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { return emptyList() } - return listOf(feltlisteMap(entitet.label, list)) - + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) } return list } - private fun mapDokumentasjon(entitet: Søknadsfelt): List> { + private fun mapDokumentasjon(entitet: Søknadsfelt): List { val list = listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet.verdi.harSendtInnTidligere)) - if (list.size == 1 && (list[0] as Map<*, *>).isEmpty()) { + if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { return emptyList() } - return listOf( feltlisteMap(entitet.label, list)) + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) } private fun feltlisteMap( label: String, - verdi: List<*>, - visningsVariant: VisningsVariant? = null, - ): Map = - if (visningsVariant == null) { - mapOf("label" to label, "verdiliste" to verdi) - } else { - mapOf("label" to label, "visningsVariant" to visningsVariant.toString(), "verdiliste" to verdi) - } + verdiliste: List, + ): FeltMap = FeltMap(label = label, verdiliste = verdiliste) + + private fun feltlisteMap( + label: String, + verdiliste: List, + visningsVariant: VisningsVariant, + ): VerdilisteElement = VerdilisteElement(label = label, verdiliste = verdiliste, visningsVariant = visningsVariant.toString()) /** * Henter ut verdien for felt på entitet. diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" index 9aa5c3fab..f5e788bbb 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" @@ -1,6 +1,8 @@ package no.nav.familie.ef.mottak.service import no.nav.familie.ef.mottak.repository.domain.Ettersending +import no.nav.familie.ef.mottak.repository.domain.FeltMap +import no.nav.familie.ef.mottak.repository.domain.VerdilisteElement import no.nav.familie.kontrakter.ef.søknad.Adresse import no.nav.familie.kontrakter.ef.søknad.Datoperiode import no.nav.familie.kontrakter.ef.søknad.Dokumentasjon @@ -43,31 +45,31 @@ object SøknadTreeWalker { fun mapOvergangsstønad( søknad: SøknadOvergangsstønad, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return feltlisteMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } fun mapBarnetilsyn( søknad: SøknadBarnetilsyn, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return feltlisteMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } fun mapSkolepenger( søknad: SøknadSkolepenger, vedleggTitler: List, - ): Map { + ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return feltlisteMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } - fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): Map { + fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): FeltMap { val finnFelter = finnFelter(skjema) return feltlisteMap("Skjema for arbeidssøker - 15-08.01", finnFelter) } @@ -75,24 +77,25 @@ object SøknadTreeWalker { fun mapEttersending( ettersending: Ettersending, vedleggTitler: List, - ): Map { + ): FeltMap { val infoMap = - feltlisteMap( - "Ettersending av vedlegg", - listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( - "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + VerdilisteElement( + label = "Ettersending av vedlegg", + verdiliste = + listOf( + Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), + Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), + Feltformaterer.feltMap( + "Dato mottatt", + ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + ), ), - ), ) - val vedleggMap = feltlisteMap("Dokumenter vedlagt", listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedleggMap = VerdilisteElement(label = "Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return feltlisteMap("Ettersending", listOf(infoMap, vedleggMap)) } - private fun finnFelter(entitet: Any): List> { + private fun finnFelter(entitet: Any): List { // Det går ikke å hente elementene i en liste med reflection, så vi traverserer den som vanlig. if (entitet is List) { return entitet @@ -122,21 +125,25 @@ object SøknadTreeWalker { } if (entitet.verdi is List<*>) { val verdiliste = entitet.verdi as List<*> - if (verdiliste.isNotEmpty() && verdiliste.first() is String) { + if (verdiliste.firstOrNull() is String) { return listOf(Feltformaterer.mapEndenodeTilUtskriftMap(entitet)) } } - return listOf(feltlisteMap(entitet.label, list)) + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) } return list } - private fun mapDokumentasjon(entitet: Søknadsfelt): Map = feltlisteMap(entitet.label, listOf(Feltformaterer.mapEndenodeTilUtskriftMap(entitet.verdi.harSendtInnTidligere))) + private fun mapDokumentasjon(entitet: Søknadsfelt): VerdilisteElement = + VerdilisteElement( + label = entitet.label, + verdiliste = listOf(Feltformaterer.mapEndenodeTilUtskriftMap(entitet.verdi.harSendtInnTidligere)), + ) private fun feltlisteMap( label: String, - verdi: List<*>, - ) = mapOf("label" to label, "verdiliste" to verdi) + verdiliste: List, + ): FeltMap = FeltMap(label = label, verdiliste = verdiliste) /** * Henter ut verdien for felt på entitet. diff --git a/src/test/kotlin/no/nav/familie/ef/mottak/mockapi/MockConfiguration.kt b/src/test/kotlin/no/nav/familie/ef/mottak/mockapi/MockConfiguration.kt index 97f4da8a5..37d99eb0a 100644 --- a/src/test/kotlin/no/nav/familie/ef/mottak/mockapi/MockConfiguration.kt +++ b/src/test/kotlin/no/nav/familie/ef/mottak/mockapi/MockConfiguration.kt @@ -4,6 +4,7 @@ import io.mockk.mockk import no.nav.familie.ef.mottak.config.IntegrasjonerConfig import no.nav.familie.ef.mottak.integration.IntegrasjonerClient import no.nav.familie.ef.mottak.integration.PdfClient +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.kontrakter.felles.dokarkiv.ArkiverDokumentResponse import no.nav.familie.kontrakter.felles.dokarkiv.v2.ArkiverDokumentRequest import no.nav.familie.kontrakter.felles.objectMapper @@ -22,7 +23,7 @@ class MockConfiguration { @Profile("mock-pdf") fun pdfClient(): PdfClient = object : PdfClient(mockk(), mockk()) { - override fun lagPdf(labelValueJson: Map): ByteArray { + override fun lagPdf(labelValueJson: FeltMap): ByteArray { val pdf = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(labelValueJson) log.info("Creating pdf: $pdf") return labelValueJson.toString().toByteArray() diff --git a/src/test/kotlin/no/nav/familie/ef/mottak/service/FeltformatererTest.kt b/src/test/kotlin/no/nav/familie/ef/mottak/service/FeltformatererTest.kt index ccb7387e1..7811adcbc 100644 --- a/src/test/kotlin/no/nav/familie/ef/mottak/service/FeltformatererTest.kt +++ b/src/test/kotlin/no/nav/familie/ef/mottak/service/FeltformatererTest.kt @@ -1,5 +1,6 @@ package no.nav.familie.ef.mottak.service +import no.nav.familie.ef.mottak.repository.domain.VerdilisteElement import no.nav.familie.kontrakter.ef.søknad.Adresse import no.nav.familie.kontrakter.ef.søknad.Datoperiode import no.nav.familie.kontrakter.ef.søknad.MånedÅrPeriode @@ -19,7 +20,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "desember")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "desember")) } @Test @@ -28,7 +29,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Ja")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Ja")) } @Test @@ -37,7 +38,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Ja\n\nNei")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Ja\n\nNei")) } @Test @@ -46,7 +47,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Lille\n\nGrimme\n\nArne\n\nTrenger\n\nRis")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Lille\n\nGrimme\n\nArne\n\nTrenger\n\nRis")) } @Test @@ -56,7 +57,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to fnr)) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = fnr)) } @Test @@ -65,7 +66,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Husebyskogen 15\n\n1572 Fet\n\nNorge")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Husebyskogen 15\n\n1572 Fet\n\nNorge")) } @Test @@ -74,7 +75,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "05.12.2015")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "05.12.2015")) } @Test @@ -83,7 +84,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "05.12.2015 14:52:48")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "05.12.2015 14:52:48")) } @Test @@ -92,7 +93,7 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Fra februar 2015 til juli 2018")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Fra februar 2015 til juli 2018")) } @Test @@ -101,6 +102,6 @@ internal class FeltformatererTest { val resultat = Feltformaterer.mapEndenodeTilUtskriftMap(testverdi) - assertThat(resultat).isEqualTo(mapOf("label" to "label", "verdi" to "Fra 01.02.2015 til 14.07.2018")) + assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Fra 01.02.2015 til 14.07.2018")) } } diff --git "a/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapperTest.kt" "b/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMapTest.kt" similarity index 61% rename from "src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapperTest.kt" rename to "src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMapTest.kt" index 04ccd5a5a..a42637ac9 100644 --- "a/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilGenereltFormatMapperTest.kt" +++ "b/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMapTest.kt" @@ -3,22 +3,23 @@ package no.nav.familie.ef.mottak.service import no.nav.familie.ef.mottak.encryption.EncryptedString import no.nav.familie.ef.mottak.no.nav.familie.ef.mottak.util.IOTestUtil import no.nav.familie.ef.mottak.repository.domain.Ettersending +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.kontrakter.felles.objectMapper import org.assertj.core.api.Assertions import org.junit.jupiter.api.Test import java.time.LocalDateTime -class SøknadTilGenereltFormatMapperTest { +class SøknadTilFeltMapTest { @Test fun `mapSøknadsfelter returnerer en map-struktur med feltene fra søknaden`() { val søknad = Testdata.søknadOvergangsstønad - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, emptyList()) + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, emptyList()) - Assertions.assertThat(mapSøknadsfelter).isNotEmpty - Assertions.assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") + Assertions.assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + Assertions.assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") - val verdiliste = mapSøknadsfelter["verdiliste"] as List<*> + val verdiliste = mapSøknadsfelter.verdiliste Assertions.assertThat(verdiliste).hasSize(12) } @@ -26,11 +27,9 @@ class SøknadTilGenereltFormatMapperTest { fun `mapSøknadsfelter returnerer en map-struktur med typen TABELL_BARN`() { val søknad = Testdata.søknadOvergangsstønad - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, emptyList()) + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, emptyList()) - val verdiliste = mapSøknadsfelter["verdiliste"] as List> - - val harVisningsVariantBarn = verdiliste.any { it["visningsVariant"] == VisningsVariant.TABELL_BARN.toString() } + val harVisningsVariantBarn = mapSøknadsfelter.verdiliste.any { it.visningsVariant == VisningsVariant.TABELL_BARN.toString() } Assertions.assertThat(harVisningsVariantBarn).isTrue } @@ -44,11 +43,9 @@ class SøknadTilGenereltFormatMapperTest { "Dokumentasjon på at du er syk", "Dokumentasjon på at kan arbeide", ) - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, vedlegg) - - val verdiliste = mapSøknadsfelter["verdiliste"] as List> + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, vedlegg) - val harVisningsVariantVedlegg = verdiliste.any { it["visningsVariant"] == VisningsVariant.VEDLEGG.toString() } + val harVisningsVariantVedlegg = mapSøknadsfelter.verdiliste.any { it.visningsVariant == VisningsVariant.VEDLEGG.toString() } Assertions.assertThat(harVisningsVariantVedlegg).isTrue } @@ -57,11 +54,11 @@ class SøknadTilGenereltFormatMapperTest { val søknad = Testdata.søknadOvergangsstønad val vedlegg = listOf("Dokumentasjon på at du er syk") - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, vedlegg) - Assertions.assertThat(mapSøknadsfelter).isNotEmpty - Assertions.assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") - Assertions.assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(12) + Assertions.assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + Assertions.assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") + Assertions.assertThat(mapSøknadsfelter.verdiliste).hasSize(12) } @Test @@ -69,22 +66,22 @@ class SøknadTilGenereltFormatMapperTest { val søknad = Testdata.søknadSkolepenger val vedlegg = listOf("Dokumentasjon på at du er syk") - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapSkolepenger(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapSkolepenger(søknad, vedlegg) - Assertions.assertThat(mapSøknadsfelter).isNotEmpty - Assertions.assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om stønad til skolepenger (NAV 15-00.04)") - Assertions.assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(9) + Assertions.assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + Assertions.assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om stønad til skolepenger (NAV 15-00.04)") + Assertions.assertThat(mapSøknadsfelter.verdiliste).hasSize(9) } @Test fun `mapSkjemafelter returnerer en map-struktur med feltene fra skjema`() { val skjemaForArbeidssøker = Testdata.skjemaForArbeidssøker - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapSkjemafelter(skjemaForArbeidssøker) + val mapSøknadsfelter = SøknadTilFeltMap.mapSkjemafelter(skjemaForArbeidssøker) - Assertions.assertThat(mapSøknadsfelter).isNotEmpty - Assertions.assertThat(mapSøknadsfelter["label"]).isEqualTo("Skjema for arbeidssøker - 15-08.01") - Assertions.assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(3) + Assertions.assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + Assertions.assertThat(mapSøknadsfelter.label).isEqualTo("Skjema for arbeidssøker - 15-08.01") + Assertions.assertThat(mapSøknadsfelter.verdiliste).hasSize(3) } @Test @@ -97,7 +94,7 @@ class SøknadTilGenereltFormatMapperTest { "Dokumentasjon på at du er syk", "Dokumentasjon på at kan arbeide", ) - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, vedlegg) generatePdfAndAssert(mapSøknadsfelter, "pdf_generated_overgangsstønad_med_typer.json") } @@ -106,7 +103,7 @@ class SøknadTilGenereltFormatMapperTest { val søknad = Testdata.søknadSkolepenger val vedlegg = listOf("Utgifter til utdanning") - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapSkolepenger(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapSkolepenger(søknad, vedlegg) generatePdfAndAssert(mapSøknadsfelter, "pdf_generated_skolepenger_med_typer.json") } @@ -120,14 +117,14 @@ class SøknadTilGenereltFormatMapperTest { "Dokumentasjon på at du er syk", "Dokumentasjon på at kan arbeide", ) - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapBarnetilsyn(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapBarnetilsyn(søknad, vedlegg) generatePdfAndAssert(mapSøknadsfelter, "pdf_generated_barnetilsyn_med_typer.json") } @Test fun `map ettersending med vedlegg`() { val mapEttersending = - SøknadTilGenereltFormatMapper.mapEttersending( + SøknadTilFeltMap.mapEttersending( Ettersending( stønadType = "OVERGANGSSTØNAD", fnr = "23118612345", @@ -144,21 +141,19 @@ class SøknadTilGenereltFormatMapperTest { fun `ekskluderer verdiliste når skalEkskluderes matcher`() { val søknad = Testdata.søknadOvergangsstønad - val vedlegg = listOf("Dokumentasjon på at du er syk") - val mapSøknadsfelter = SøknadTilGenereltFormatMapper.mapOvergangsstønad(søknad, vedlegg) + val mapSøknadsfelter = SøknadTilFeltMap.mapOvergangsstønad(søknad, vedlegg) - val verdiliste = mapSøknadsfelter["verdiliste"] as List> - val harEkskludertElement = verdiliste.any { - it["label"] == "harSendtInn" && - it["verdi"] == "Nei" - } + val harEkskludertElement = + mapSøknadsfelter.verdiliste.any { + it.label == "harSendtInn" && + it.verdi == "Nei" + } Assertions.assertThat(harEkskludertElement).isFalse } - private fun generatePdfAndAssert( - mapSøknadsfelter: Map, + mapSøknadsfelter: FeltMap, filename: String, ) { val pdf = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapSøknadsfelter) diff --git "a/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalkerTest.kt" "b/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalkerTest.kt" index 6c50bb6a2..f19047dd7 100644 --- "a/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalkerTest.kt" +++ "b/src/test/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalkerTest.kt" @@ -3,6 +3,7 @@ package no.nav.familie.ef.mottak.service import no.nav.familie.ef.mottak.encryption.EncryptedString import no.nav.familie.ef.mottak.no.nav.familie.ef.mottak.util.IOTestUtil.readFile import no.nav.familie.ef.mottak.repository.domain.Ettersending +import no.nav.familie.ef.mottak.repository.domain.FeltMap import no.nav.familie.kontrakter.felles.objectMapper import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -15,11 +16,9 @@ class SøknadTreeWalkerTest { val mapSøknadsfelter = SøknadTreeWalker.mapOvergangsstønad(søknad, emptyList()) - assertThat(mapSøknadsfelter).isNotEmpty - assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") - - val verdiliste = mapSøknadsfelter["verdiliste"] as List<*> - assertThat(verdiliste).hasSize(12) + assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") + assertThat(mapSøknadsfelter.verdiliste).hasSize(12) } @Test @@ -29,9 +28,9 @@ class SøknadTreeWalkerTest { val vedlegg = listOf("Dokumentasjon på at du er syk") val mapSøknadsfelter = SøknadTreeWalker.mapOvergangsstønad(søknad, vedlegg) - assertThat(mapSøknadsfelter).isNotEmpty - assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") - assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(12) + assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om overgangsstønad (NAV 15-00.01)") + assertThat(mapSøknadsfelter.verdiliste).hasSize(12) } @Test @@ -41,9 +40,9 @@ class SøknadTreeWalkerTest { val vedlegg = listOf("Dokumentasjon på at du er syk") val mapSøknadsfelter = SøknadTreeWalker.mapSkolepenger(søknad, vedlegg) - assertThat(mapSøknadsfelter).isNotEmpty - assertThat(mapSøknadsfelter["label"]).isEqualTo("Søknad om stønad til skolepenger (NAV 15-00.04)") - assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(9) + assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + assertThat(mapSøknadsfelter.label).isEqualTo("Søknad om stønad til skolepenger (NAV 15-00.04)") + assertThat(mapSøknadsfelter.verdiliste).hasSize(9) } @Test @@ -52,9 +51,9 @@ class SøknadTreeWalkerTest { val mapSøknadsfelter = SøknadTreeWalker.mapSkjemafelter(skjemaForArbeidssøker) - assertThat(mapSøknadsfelter).isNotEmpty - assertThat(mapSøknadsfelter["label"]).isEqualTo("Skjema for arbeidssøker - 15-08.01") - assertThat(mapSøknadsfelter["verdiliste"] as List).hasSize(3) + assertThat(mapSøknadsfelter.verdiliste).isNotEmpty + assertThat(mapSøknadsfelter.label).isEqualTo("Skjema for arbeidssøker - 15-08.01") + assertThat(mapSøknadsfelter.verdiliste).hasSize(3) } @Test @@ -111,7 +110,7 @@ class SøknadTreeWalkerTest { } private fun generatePdfAndAssert( - mapSøknadsfelter: Map, + mapSøknadsfelter: FeltMap, filename: String, ) { val pdf = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapSøknadsfelter) From 8a49a3fa27c29a87685803dfd9b15af9e2f2f486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Thu, 19 Dec 2024 12:57:16 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Byttet=20ut=20metoder=20med=20konstrukt?= =?UTF-8?q?=C3=B8rer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/S\303\270knadTilFeltMap.kt" | 35 +++++++------------ .../service/S\303\270knadTreeWalker.kt" | 15 +++----- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index fc9dad5dd..07540e9ba 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -47,8 +47,8 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) - return feltlisteMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) + val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } fun mapBarnetilsyn( @@ -56,8 +56,8 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) - return feltlisteMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) + val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } fun mapSkolepenger( @@ -65,13 +65,13 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = feltlisteMap("Vedlegg", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) - return feltlisteMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) + val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): FeltMap { val finnFelter = finnFelter(skjema) - return feltlisteMap("Skjema for arbeidssøker - 15-08.01", finnFelter) + return FeltMap("Skjema for arbeidssøker - 15-08.01", finnFelter) } fun mapEttersending( @@ -91,8 +91,8 @@ object SøknadTilFeltMap { ), ), ) - val vedleggMap = feltlisteMap("Dokumenter vedlagt", listOf(Feltformaterer.mapVedlegg(vedleggTitler)), VisningsVariant.VEDLEGG) - return feltlisteMap("Ettersending", listOf(infoMap, vedleggMap)) + val vedleggMap = VerdilisteElement("Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) } private fun finnFelter(entitet: Any): List { @@ -124,13 +124,13 @@ object SøknadTilFeltMap { return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) } if (entitet.label == "Barna dine") { - return listOf(feltlisteMap(entitet.label, list, VisningsVariant.TABELL_BARN)) + return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_BARN.toString())) } if (entitet.label == "Om arbeidsforholdet ditt") { - return listOf(feltlisteMap(entitet.label, list, VisningsVariant.TABELL_ARBEIDSFORHOLD)) + return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_ARBEIDSFORHOLD.toString())) } if (entitet.label == "Vedlegg") { - return listOf(feltlisteMap(entitet.label, list, VisningsVariant.VEDLEGG)) + return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.VEDLEGG.toString())) } if (entitet.verdi is List<*>) { val verdiliste = entitet.verdi as List<*> @@ -156,17 +156,6 @@ object SøknadTilFeltMap { return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) } - private fun feltlisteMap( - label: String, - verdiliste: List, - ): FeltMap = FeltMap(label = label, verdiliste = verdiliste) - - private fun feltlisteMap( - label: String, - verdiliste: List, - visningsVariant: VisningsVariant, - ): VerdilisteElement = VerdilisteElement(label = label, verdiliste = verdiliste, visningsVariant = visningsVariant.toString()) - /** * Henter ut verdien for felt på entitet. */ diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" index f5e788bbb..4a65adce1 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" @@ -48,7 +48,7 @@ object SøknadTreeWalker { ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) - return feltlisteMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) + return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } fun mapBarnetilsyn( @@ -57,7 +57,7 @@ object SøknadTreeWalker { ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) - return feltlisteMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) + return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } fun mapSkolepenger( @@ -66,12 +66,12 @@ object SøknadTreeWalker { ): FeltMap { val finnFelter = finnFelter(søknad) val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) - return feltlisteMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) + return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): FeltMap { val finnFelter = finnFelter(skjema) - return feltlisteMap("Skjema for arbeidssøker - 15-08.01", finnFelter) + return FeltMap("Skjema for arbeidssøker - 15-08.01", finnFelter) } fun mapEttersending( @@ -92,7 +92,7 @@ object SøknadTreeWalker { ), ) val vedleggMap = VerdilisteElement(label = "Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) - return feltlisteMap("Ettersending", listOf(infoMap, vedleggMap)) + return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) } private fun finnFelter(entitet: Any): List { @@ -140,11 +140,6 @@ object SøknadTreeWalker { verdiliste = listOf(Feltformaterer.mapEndenodeTilUtskriftMap(entitet.verdi.harSendtInnTidligere)), ) - private fun feltlisteMap( - label: String, - verdiliste: List, - ): FeltMap = FeltMap(label = label, verdiliste = verdiliste) - /** * Henter ut verdien for felt på entitet. */ From 938a338ceb7cea2d81027248dcbcad3168f73999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Thu, 19 Dec 2024 14:28:03 +0100 Subject: [PATCH 3/5] =?UTF-8?q?H=C3=A5ndtere=20ekskludering=20av=20dokumen?= =?UTF-8?q?tasjon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ef/mottak/service/Feltformaterer.kt | 42 +++++++------- .../service/S\303\270knadTilFeltMap.kt" | 55 ++++++++++++++----- .../service/S\303\270knadTreeWalker.kt" | 23 +++++--- 3 files changed, 78 insertions(+), 42 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt index aa8e7d8b2..10814b0f0 100644 --- a/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt +++ b/src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt @@ -17,46 +17,59 @@ object Feltformaterer { /** * Håndterer formatering utover vanlig toString for endenodene */ - fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): VerdilisteElement = feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) + fun mapEndenodeTilUtskriftMap(entitet: Søknadsfelt<*>): VerdilisteElement = mapTilVerdiListeElement(entitet) - fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement { + fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement? { // skal ekskluderes if (entitet.label == "Jeg har sendt inn denne dokumentasjonen til Nav tidligere" && entitet.verdi.toString() == "false" ) { - // return emptyMap() - return VerdilisteElement(label = "", verdi = "") + return null } - return feltMap(entitet.label, mapVerdi(entitet.verdi!!), entitet.alternativer) + return mapTilVerdiListeElement(entitet) } - fun mapVedlegg(vedleggTitler: List): VerdilisteElement { - val verdi = vedleggTitler.joinToString("\n\n") - return feltMap("Vedlegg", verdi) - } + fun mapVedlegg(vedleggTitler: List): VerdilisteElement = VerdilisteElement("Vedlegg", verdi = vedleggTitler.joinToString("\n\n")) + + private fun mapTilVerdiListeElement(entitet: Søknadsfelt<*>) = + VerdilisteElement( + entitet.label, + verdi = mapVerdi(entitet.verdi!!), + alternativer = entitet.alternativer?.joinToString(" / "), + ) private fun mapVerdi(verdi: Any): String = when (verdi) { is Month -> tilUtskriftsformat(verdi) + is Boolean -> tilUtskriftsformat(verdi) + is Double -> tilUtskriftsformat(verdi) + is List<*> -> verdi.joinToString("\n\n") { mapVerdi(it!!) } + is Fødselsnummer -> verdi.verdi + is Adresse -> tilUtskriftsformat(verdi) + is LocalDate -> tilUtskriftsformat(verdi) + is LocalDateTime -> tilUtskriftsformat(verdi) + is MånedÅrPeriode -> tilUtskriftsformat(verdi) + is Datoperiode -> tilUtskriftsformat(verdi) + else -> verdi.toString() } @@ -81,15 +94,4 @@ object Feltformaterer { listOf(adresse.postnummer, adresse.poststedsnavn).joinToString(" "), adresse.land, ).joinToString("\n\n") - - fun feltMap( - label: String, - verdi: String, - alternativer: List? = null, - ): VerdilisteElement = - if (alternativer != null) { - VerdilisteElement(label = label, verdi = verdi, alternativer = alternativer.joinToString(" / ")) - } else { - VerdilisteElement(label = label, verdi = verdi) - } } diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index 07540e9ba..a260d995a 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -47,7 +47,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } @@ -56,7 +56,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } @@ -65,7 +65,7 @@ object SøknadTilFeltMap { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement("Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedlegg = mapTilVedlegg(vedleggTitler) return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } @@ -83,15 +83,15 @@ object SøknadTilFeltMap { label = "Ettersending av vedlegg", verdiliste = listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( + VerdilisteElement("Stønadstype", verdi = ettersending.stønadType), + VerdilisteElement("Fødselsnummer", verdi = ettersending.fnr), + VerdilisteElement( "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + verdi = ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), ), ), ) - val vedleggMap = VerdilisteElement("Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), visningsVariant = VisningsVariant.VEDLEGG.toString()) + val vedleggMap = mapTilVedlegg(vedleggTitler, "Dokumenter vedlagt") return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) } @@ -121,22 +121,40 @@ object SøknadTilFeltMap { return mapDokumentasjon(entitet as Søknadsfelt) } if (entitet.verdi!!::class in endNodes) { - return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) + return Feltformaterer.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) } ?: emptyList() } if (entitet.label == "Barna dine") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_BARN.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.TABELL_BARN.toString(), + ), + ) } if (entitet.label == "Om arbeidsforholdet ditt") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.TABELL_ARBEIDSFORHOLD.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.TABELL_ARBEIDSFORHOLD.toString(), + ), + ) } if (entitet.label == "Vedlegg") { - return listOf(VerdilisteElement(entitet.label, verdiliste = list, visningsVariant = VisningsVariant.VEDLEGG.toString())) + return listOf( + VerdilisteElement( + entitet.label, + verdiliste = list, + visningsVariant = VisningsVariant.VEDLEGG.toString(), + ), + ) } if (entitet.verdi is List<*>) { val verdiliste = entitet.verdi as List<*> if (verdiliste.firstOrNull() is String) { - return listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet)) + return Feltformaterer.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) } ?: emptyList() } } // skal ekskluderes @@ -153,7 +171,7 @@ object SøknadTilFeltMap { if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { return emptyList() } - return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list.filterNotNull())) } /** @@ -176,6 +194,15 @@ object SøknadTilFeltMap { * Konstruktørparametere er det eneste som gir oss en garantert rekkefølge for feltene, så vi henter disse først. */ private fun konstruktørparametere(entity: Any) = entity::class.primaryConstructor?.parameters ?: emptyList() + + private fun mapTilVedlegg( + vedleggTitler: List, + label: String = "Vedlegg", + ) = VerdilisteElement( + label, + verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), + visningsVariant = VisningsVariant.VEDLEGG.toString(), + ) } enum class VisningsVariant { diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" index 4a65adce1..1d74b27c9 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTreeWalker.kt" @@ -47,7 +47,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om overgangsstønad (NAV 15-00.01)", finnFelter + vedlegg) } @@ -56,7 +57,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om stønad til barnetilsyn (NAV 15-00.02)", finnFelter + vedlegg) } @@ -65,7 +67,8 @@ object SøknadTreeWalker { vedleggTitler: List, ): FeltMap { val finnFelter = finnFelter(søknad) - val vedlegg = VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedlegg = + VerdilisteElement(label = "Vedlegg", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) return FeltMap("Søknad om stønad til skolepenger (NAV 15-00.04)", finnFelter + vedlegg) } @@ -83,15 +86,19 @@ object SøknadTreeWalker { label = "Ettersending av vedlegg", verdiliste = listOf( - Feltformaterer.feltMap("Stønadstype", ettersending.stønadType), - Feltformaterer.feltMap("Fødselsnummer", ettersending.fnr), - Feltformaterer.feltMap( + VerdilisteElement("Stønadstype", verdi = ettersending.stønadType), + VerdilisteElement("Fødselsnummer", verdi = ettersending.fnr), + VerdilisteElement( "Dato mottatt", - ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), + verdi = ettersending.opprettetTid.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")), ), ), ) - val vedleggMap = VerdilisteElement(label = "Dokumenter vedlagt", verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler))) + val vedleggMap = + VerdilisteElement( + label = "Dokumenter vedlagt", + verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)), + ) return FeltMap("Ettersending", listOf(infoMap, vedleggMap)) } From 2ac762a0bfb2cf64583a0162b69c1785d12de352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Fri, 3 Jan 2025 10:50:14 +0100 Subject: [PATCH 4/5] =?UTF-8?q?Gj=C3=B8r=20en=20sjekk=20p=C3=A5=20hva=20so?= =?UTF-8?q?m=20blir=20ekskludert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index a260d995a..993aad264 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -158,9 +158,10 @@ object SøknadTilFeltMap { } } // skal ekskluderes - if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { + if (list.size == 1 && list.first().verdiliste.isNullOrEmpty() && list.first().verdi.isNullOrEmpty()) { return emptyList() } + return listOf(VerdilisteElement(label = entitet.label, verdiliste = list)) } return list From 20eb316d9d9ea0f0daabf03ba719c7ac5ff9e17b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Garseg=20M=C3=B8rk?= Date: Fri, 3 Jan 2025 10:56:41 +0100 Subject: [PATCH 5/5] Samme sjekk --- .../nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" index 993aad264..5223220dd 100644 --- "a/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/mottak/service/S\303\270knadTilFeltMap.kt" @@ -169,7 +169,7 @@ object SøknadTilFeltMap { private fun mapDokumentasjon(entitet: Søknadsfelt): List { val list = listOf(Feltformaterer.genereltFormatMapperMapEndenode(entitet.verdi.harSendtInnTidligere)) - if (list.singleOrNull()?.verdiliste?.isEmpty() == true) { + if (list.size == 1 && list.first()?.verdiliste.isNullOrEmpty() && list.first()?.verdi.isNullOrEmpty()) { return emptyList() } return listOf(VerdilisteElement(label = entitet.label, verdiliste = list.filterNotNull()))