diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/FeatureToggleController.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/FeatureToggleController.kt" index dd597ddd..ab27c049 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/FeatureToggleController.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/FeatureToggleController.kt" @@ -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 diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/S\303\270knadBarnetilsynController.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/S\303\270knadBarnetilsynController.kt" index 46d23dfc..79515292 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/S\303\270knadBarnetilsynController.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/S\303\270knadBarnetilsynController.kt" @@ -2,6 +2,7 @@ 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 @@ -9,6 +10,7 @@ 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 @@ -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() + } } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/Sivilstatus.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/Sivilstatus.kt" index a0a6e91d..4c0cb201 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/Sivilstatus.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/Sivilstatus.kt" @@ -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, +) diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/S\303\270knadBarnetilsynDto.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/S\303\270knadBarnetilsynDto.kt" index 329adc64..9a3cbcfa 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/S\303\270knadBarnetilsynDto.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/api/dto/s\303\270knadsdialog/S\303\270knadBarnetilsynDto.kt" @@ -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, +) diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/config/MottakConfig.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/config/MottakConfig.kt" index 675619d8..c08f3cb2 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/config/MottakConfig.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/config/MottakConfig.kt" @@ -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) @@ -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" } } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/integration/S\303\270knadClient.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/integration/S\303\270knadClient.kt" index 810bb39d..ca021e2e 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/integration/S\303\270knadClient.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/integration/S\303\270knadClient.kt" @@ -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) diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/MedlemsskapsMapper.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/MedlemsskapsMapper.kt" index 248e0a35..b218bf3f 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/MedlemsskapsMapper.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/MedlemsskapsMapper.kt" @@ -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 @@ -34,4 +38,29 @@ object MedlemsskapsMapper : Mapper(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, + ), + ) + } } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/PersonMinimumMapper.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/PersonMinimumMapper.kt" index 05e8d966..66fd3214 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/PersonMinimumMapper.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/PersonMinimumMapper.kt" @@ -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? { return ident?.let { return if (it.verdi.isNotBlank()) { @@ -58,4 +66,6 @@ object PersonMinimumMapper { } } } + + fun Søknadsfelt?.tilTekstFelt(): TekstFelt? = this?.let { TekstFelt(it.label, it.verdi.verdi, it.svarId?.verdi) } } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/SivilstandsdetaljerMapper.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/SivilstandsdetaljerMapper.kt" index e5b6d221..afda4ba2 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/SivilstandsdetaljerMapper.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/SivilstandsdetaljerMapper.kt" @@ -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 @@ -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(ÅrsakTilAleneMedBarn) { @@ -43,4 +48,18 @@ object SivilstandsdetaljerMapper : MapperMedVedlegg?.tilDatoFelt() = this?.let { DatoFelt(it.label, it.verdi.toString()) } +fun Søknadsfelt?.tilBooleanFelt() = this?.let { BooleanFelt(it.label, it.verdi) } +fun Søknadsfelt?.tilTekstFelt() = this?.let { TekstFelt(it.label, it.verdi) } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/S\303\270knadBarnetilsynMapper.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/S\303\270knadBarnetilsynMapper.kt" index 413aa33a..a52585d9 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/S\303\270knadBarnetilsynMapper.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/mapper/kontrakt/S\303\270knadBarnetilsynMapper.kt" @@ -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 @@ -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), + ) + } } diff --git "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/service/S\303\270knadService.kt" "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/service/S\303\270knadService.kt" index efb450dd..c1634d67 100644 --- "a/src/main/kotlin/no/nav/familie/ef/s\303\270knad/service/S\303\270knadService.kt" +++ "b/src/main/kotlin/no/nav/familie/ef/s\303\270knad/service/S\303\270knadService.kt" @@ -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 @@ -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()) + } }