Skip to content

Commit

Permalink
Håndtere ekskludering av dokumentasjon
Browse files Browse the repository at this point in the history
  • Loading branch information
fredrikmork committed Dec 19, 2024
1 parent 8a49a3f commit 938a338
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 42 deletions.
42 changes: 22 additions & 20 deletions src/main/kotlin/no/nav/familie/ef/mottak/service/Feltformaterer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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<String>): VerdilisteElement {
val verdi = vedleggTitler.joinToString("\n\n")
return feltMap("Vedlegg", verdi)
}
fun mapVedlegg(vedleggTitler: List<String>): 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()
}
Expand All @@ -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<String>? = null,
): VerdilisteElement =
if (alternativer != null) {
VerdilisteElement(label = label, verdi = verdi, alternativer = alternativer.joinToString(" / "))
} else {
VerdilisteElement(label = label, verdi = verdi)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ object SøknadTilFeltMap {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -56,7 +56,7 @@ object SøknadTilFeltMap {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -65,7 +65,7 @@ object SøknadTilFeltMap {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -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))
}

Expand Down Expand Up @@ -121,22 +121,40 @@ object SøknadTilFeltMap {
return mapDokumentasjon(entitet as Søknadsfelt<Dokumentasjon>)
}
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
Expand All @@ -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()))
}

/**
Expand All @@ -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<String>,
label: String = "Vedlegg",
) = VerdilisteElement(
label,
verdiliste = listOf(Feltformaterer.mapVedlegg(vedleggTitler)),
visningsVariant = VisningsVariant.VEDLEGG.toString(),
)
}

enum class VisningsVariant {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ object SøknadTreeWalker {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -56,7 +57,8 @@ object SøknadTreeWalker {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -65,7 +67,8 @@ object SøknadTreeWalker {
vedleggTitler: List<String>,
): 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)
}

Expand All @@ -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))
}

Expand Down

0 comments on commit 938a338

Please sign in to comment.