Skip to content

Commit

Permalink
Gjenbruk av barnetilsynsøknad: Hent forrige barnetilsynsøknad fra mot…
Browse files Browse the repository at this point in the history
…tak (#918)
  • Loading branch information
olekvernberg authored Nov 29, 2023
1 parent afa8b02 commit 2d5998e
Show file tree
Hide file tree
Showing 11 changed files with 102 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ class FeatureToggleController(private val featureToggleService: FeatureToggleSer
"familie.ef.soknad.feilsituasjon",
"familie.ef.soknad.nynorsk",
"familie.ef.soknad.validerbosituasjon",
"familie.ef.soknad.hent-barnetilsyn-soknad-til-gjenbruk",
)

@GetMapping
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@ package no.nav.familie.ef.søknad.api

import no.nav.familie.ef.søknad.api.dto.Kvittering
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynDto
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynGjenbrukDto
import no.nav.familie.ef.søknad.featuretoggle.FeatureToggleService
import no.nav.familie.ef.søknad.service.SøknadService
import no.nav.familie.sikkerhet.EksternBrukerUtils
import no.nav.security.token.support.core.api.ProtectedWithClaims
import org.springframework.http.HttpStatus
import org.springframework.http.MediaType.APPLICATION_JSON_VALUE
import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
Expand All @@ -30,4 +32,9 @@ class SøknadBarnetilsynController(val søknadService: SøknadService, val featu
søknadService.sendInn(søknad, innsendingMottatt)
return Kvittering("ok", mottattDato = innsendingMottatt)
}

@GetMapping("forrige")
fun hentForrigeBarnetilsynSøknad(): SøknadBarnetilsynGjenbrukDto? {
return søknadService.hentForrigeBarnetilsynSøknad()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,11 @@ data class Sivilstatus(
val datoEndretSamvær: DatoFelt? = null,
val tidligereSamboerDetaljer: SamboerDetaljer? = null,
)

data class SivilstatusTilGjenbruk(
val årsakEnslig: TekstFelt? = null,
val datoForSamlivsbrudd: DatoFelt? = null,
val datoFlyttetFraHverandre: DatoFelt? = null,
val datoEndretSamvær: DatoFelt? = null,
val tidligereSamboerDetaljer: SamboerDetaljer? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,8 @@ data class SøknadBarnetilsynDto(
val locale: String = "nb",
val skalBehandlesINySaksbehandling: Boolean = false,
)

data class SøknadBarnetilsynGjenbrukDto(
val sivilstatus: SivilstatusTilGjenbruk,
val medlemskap: Medlemskap,
)
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ data class MottakConfig(val uri: URI) {
internal val hentSøknaderMedDokumentasjonsbehovUri = byggUri(PATH_HENT_SØKNADER)
internal val sendInnEttersendingUri = byggUri(PATH_SEND_INN_ETTERSENDING)
internal val hentEttersendingForPersonUri = byggUri(PATH_HENT_ETTERSENDING_FOR_PERSON)
internal val hentForrigeBarnetilsynSøknadUri = byggUri(PATH_HENT_FORRIGE_BARNETILSYNSØKNAD)

internal val pingUri = byggUri(PATH_PING)

Expand All @@ -29,6 +30,7 @@ data class MottakConfig(val uri: URI) {
private const val PATH_HENT_SØKNADER = "/person/soknader"
private const val PATH_SEND_INN_ETTERSENDING = "/ettersending"
private const val PATH_HENT_ETTERSENDING_FOR_PERSON = "/ettersending/person"
private const val PATH_HENT_FORRIGE_BARNETILSYNSØKNAD = "/soknad/barnetilsyn/forrige"
private const val PATH_PING = "/ping"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,13 @@ class SøknadClient(
)
}

fun hentForrigeBarnetilsynSøknad(): SøknadBarnetilsyn? {
return getForEntity(
config.hentForrigeBarnetilsynSøknadUri,
HttpHeaders().medContentTypeJsonUTF8(),
)
}

private fun HttpHeaders.medContentTypeJsonUTF8(): HttpHeaders {
this.add("Content-Type", "application/json;charset=UTF-8")
this.add("behandlingsnummer", Tema.ENF.behandlingsnummer)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package no.nav.familie.ef.søknad.mapper.kontrakt

import no.nav.familie.ef.søknad.api.dto.søknadsdialog.BooleanFelt
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.DatoFelt
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.Medlemskap
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.PeriodeFelt
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.PerioderBoddIUtlandet
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.TekstFelt
import no.nav.familie.ef.søknad.mapper.Mapper
import no.nav.familie.ef.søknad.mapper.Språktekster
import no.nav.familie.ef.søknad.mapper.hentTekst
Expand Down Expand Up @@ -34,4 +38,29 @@ object MedlemsskapsMapper : Mapper<Medlemskap, Medlemskapsdetaljer>(Språktekste
)
} ?: listOf()
}

fun mapTilDto(medlemskapsdetaljer: Medlemskapsdetaljer): Medlemskap {
return Medlemskap(
perioderBoddIUtlandet = medlemskapsdetaljer.utenlandsopphold?.verdi?.map {
PerioderBoddIUtlandet(
begrunnelse = TekstFelt(it.årsakUtenlandsopphold.label, it.årsakUtenlandsopphold.verdi),
periode = PeriodeFelt(
fra = DatoFelt(it.fradato.label, it.fradato.verdi.toString()),
til = DatoFelt(it.tildato.label, it.tildato.verdi.toString()),
label = null,
),
land = it.land.tilTekstFelt(),
)
},
søkerBosattINorgeSisteTreÅr = BooleanFelt(
medlemskapsdetaljer.bosattNorgeSisteÅrene.label,
medlemskapsdetaljer.bosattNorgeSisteÅrene.verdi,
),
oppholdsland = medlemskapsdetaljer.oppholdsland.tilTekstFelt(),
søkerOppholderSegINorge = BooleanFelt(
medlemskapsdetaljer.oppholderDuDegINorge.label,
medlemskapsdetaljer.oppholderDuDegINorge.verdi,
),
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@ object PersonMinimumMapper {
)
}

fun mapTilDto(personMinimum: PersonMinimum): SamboerDetaljer {
return SamboerDetaljer(
fødselsdato = personMinimum.fødselsdato.tilDatoFelt(),
navn = TekstFelt(personMinimum.navn.label, personMinimum.navn.verdi),
ident = personMinimum.fødselsnummer.tilTekstFelt(),
)
}

private fun mapFødselsnummer(ident: TekstFelt?): Søknadsfelt<Fødselsnummer>? {
return ident?.let {
return if (it.verdi.isNotBlank()) {
Expand All @@ -58,4 +66,6 @@ object PersonMinimumMapper {
}
}
}

fun Søknadsfelt<Fødselsnummer>?.tilTekstFelt(): TekstFelt? = this?.let { TekstFelt(it.label, it.verdi.verdi, it.svarId?.verdi) }
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package no.nav.familie.ef.søknad.mapper.kontrakt

import no.nav.familie.ef.søknad.api.dto.søknadsdialog.BooleanFelt
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.DatoFelt
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.Sivilstatus
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SivilstatusTilGjenbruk
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.TekstFelt
import no.nav.familie.ef.søknad.mapper.DokumentasjonWrapper
import no.nav.familie.ef.søknad.mapper.DokumentfeltUtil.dokumentfelt
import no.nav.familie.ef.søknad.mapper.MapperMedVedlegg
Expand All @@ -14,6 +18,7 @@ import no.nav.familie.ef.søknad.mapper.kontrakt.DokumentIdentifikator.UFORMELL_
import no.nav.familie.ef.søknad.mapper.tilSøknadsfelt
import no.nav.familie.kontrakter.ef.søknad.Sivilstandsdetaljer
import no.nav.familie.kontrakter.ef.søknad.Søknadsfelt
import java.time.LocalDate

object SivilstandsdetaljerMapper : MapperMedVedlegg<Sivilstatus, Sivilstandsdetaljer>(ÅrsakTilAleneMedBarn) {

Expand Down Expand Up @@ -43,4 +48,18 @@ object SivilstandsdetaljerMapper : MapperMedVedlegg<Sivilstatus, Sivilstandsdeta
},
)
}

fun mapTilDto(sivilstandsdetaljer: Sivilstandsdetaljer): SivilstatusTilGjenbruk {
return SivilstatusTilGjenbruk(
årsakEnslig = sivilstandsdetaljer.årsakEnslig?.let { TekstFelt(it.label, it.verdi, it.svarId) },
datoForSamlivsbrudd = sivilstandsdetaljer.samlivsbruddsdato.tilDatoFelt(),
datoFlyttetFraHverandre = sivilstandsdetaljer.fraflytningsdato.tilDatoFelt(),
datoEndretSamvær = sivilstandsdetaljer.endringSamværsordningDato.tilDatoFelt(),
tidligereSamboerDetaljer = sivilstandsdetaljer.tidligereSamboerdetaljer?.let { PersonMinimumMapper.mapTilDto(it.verdi) },
)
}
}

fun Søknadsfelt<LocalDate>?.tilDatoFelt() = this?.let { DatoFelt(it.label, it.verdi.toString()) }
fun Søknadsfelt<Boolean>?.tilBooleanFelt() = this?.let { BooleanFelt(it.label, it.verdi) }
fun Søknadsfelt<String>?.tilTekstFelt() = this?.let { TekstFelt(it.label, it.verdi) }
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.familie.ef.søknad.mapper.kontrakt

import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynDto
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynGjenbrukDto
import no.nav.familie.ef.søknad.mapper.DokumentasjonWrapper
import no.nav.familie.ef.søknad.mapper.DokumentfeltUtil.dokumentfelt
import no.nav.familie.ef.søknad.mapper.Språk
Expand Down Expand Up @@ -66,4 +67,12 @@ class SøknadBarnetilsynMapper() {
dto.skalBehandlesINySaksbehandling,
)
}

fun mapTilDto(søknadBarnetilsyn: SøknadBarnetilsyn?): SøknadBarnetilsynGjenbrukDto? {
if (søknadBarnetilsyn == null) return null
return SøknadBarnetilsynGjenbrukDto(
sivilstatus = SivilstandsdetaljerMapper.mapTilDto(søknadBarnetilsyn.sivilstandsdetaljer.verdi),
medlemskap = MedlemsskapsMapper.mapTilDto(søknadBarnetilsyn.medlemskapsdetaljer.verdi),
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.familie.ef.søknad.service

import no.nav.familie.ef.søknad.api.dto.Kvittering
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynDto
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadBarnetilsynGjenbrukDto
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadOvergangsstønadDto
import no.nav.familie.ef.søknad.api.dto.søknadsdialog.SøknadSkolepengerDto
import no.nav.familie.ef.søknad.integration.SøknadClient
Expand Down Expand Up @@ -40,4 +41,8 @@ class SøknadService(
val kvittering = søknadClient.sendInnSkolepenger(søknadRequestData)
return KvitteringMapper.mapTilEkstern(kvittering, innsendingMottatt)
}

fun hentForrigeBarnetilsynSøknad(): SøknadBarnetilsynGjenbrukDto? {
return SøknadBarnetilsynMapper().mapTilDto(søknadClient.hentForrigeBarnetilsynSøknad())
}
}

0 comments on commit 2d5998e

Please sign in to comment.