Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bruk wrappers i forespoersel #808

Merged
merged 1 commit into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package no.nav.helsearbeidsgiver.inntektsmelding.aktiveorgnrservice

import com.github.navikt.tbd_libs.rapids_and_rivers_api.RapidsConnection
import kotlinx.serialization.builtins.MapSerializer
import kotlinx.serialization.builtins.serializer
import kotlinx.serialization.json.JsonElement
import no.nav.helsearbeidsgiver.felles.BehovType
Expand All @@ -12,6 +11,7 @@ import no.nav.helsearbeidsgiver.felles.domene.Arbeidsforhold
import no.nav.helsearbeidsgiver.felles.domene.Person
import no.nav.helsearbeidsgiver.felles.domene.ResultJson
import no.nav.helsearbeidsgiver.felles.json.les
import no.nav.helsearbeidsgiver.felles.json.orgMapSerializer
import no.nav.helsearbeidsgiver.felles.json.personMapSerializer
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.KafkaKey
Expand All @@ -28,6 +28,7 @@ import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.log.sikkerLogger
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr
import java.util.UUID

data class Steg0(
Expand All @@ -47,7 +48,7 @@ sealed class Steg1 {
}

data class Steg2(
val virksomheter: Map<String, String>,
val virksomheter: Map<Orgnr, String>,
)

class AktiveOrgnrService(
Expand Down Expand Up @@ -89,7 +90,7 @@ class AktiveOrgnrService(

override fun lesSteg2(melding: Map<Key, JsonElement>): Steg2 =
Steg2(
virksomheter = Key.VIRKSOMHETER.les(MapSerializer(String.serializer(), String.serializer()), melding),
virksomheter = Key.VIRKSOMHETER.les(orgMapSerializer, melding),
)

override fun utfoerSteg0(
Expand Down Expand Up @@ -179,7 +180,7 @@ class AktiveOrgnrService(
val gyldigeUnderenheter =
steg2.virksomheter.map {
AktiveArbeidsgivere.Arbeidsgiver(
orgnrUnderenhet = it.key,
orgnrUnderenhet = it.key.verdi,
virksomhetsnavn = it.value,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ private fun HentForespoerselResultat.toResponse(): HentForespoerselResponse {
navn = sykmeldtNavn,
innsenderNavn = avsenderNavn,
orgNavn = orgNavn,
identitetsnummer = forespoersel.fnr,
orgnrUnderenhet = forespoersel.orgnr,
identitetsnummer = forespoersel.fnr.verdi,
orgnrUnderenhet = forespoersel.orgnr.verdi,
fravaersperioder = forespoersel.sykmeldingsperioder,
egenmeldingsperioder = forespoersel.egenmeldingsperioder,
bestemmendeFravaersdag = forespoersel.forslagBestemmendeFravaersdag(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ suspend fun PipelineContext<Unit, ApplicationCall>.hentForespoersler(
}

else -> {
orgnrSet.firstOrNull()?.also { orgnr -> tilgangskontroll.validerTilgangTilOrg(call.request, orgnr) }
orgnrSet.firstOrNull()?.also { orgnr -> tilgangskontroll.validerTilgangTilOrg(call.request, orgnr.verdi) }

val respons =
resultat.map { (id, forespoersel) ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ import no.nav.helsearbeidsgiver.utils.test.date.februar
import no.nav.helsearbeidsgiver.utils.test.date.januar
import no.nav.helsearbeidsgiver.utils.test.date.mars
import no.nav.helsearbeidsgiver.utils.test.json.removeJsonWhitespace
import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.Assertions.assertNull
Expand Down Expand Up @@ -148,12 +151,14 @@ class HentForespoerselRouteKtTest : ApiTest() {
}

private object Mock {
private val orgnr = Orgnr.genererGyldig()

val request = HentForespoerselRequest(UUID.randomUUID())

private val forespoersel =
Forespoersel(
orgnr = "123",
fnr = "abc",
orgnr = orgnr,
fnr = Fnr.genererGyldig(),
sykmeldingsperioder =
listOf(
1.april til 20.april,
Expand All @@ -164,7 +169,7 @@ private object Mock {
29.mars til 29.mars,
31.mars til 31.mars,
),
bestemmendeFravaersdager = mapOf("123" to 25.april),
bestemmendeFravaersdager = mapOf(orgnr to 25.april),
forespurtData = mockForespurtData(),
erBesvart = false,
vedtaksperiodeId = UUID.randomUUID(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,16 +294,16 @@ class HentForespoerselIdListeRouteKtTest : ApiTest() {

private object Mock {
val orgnr = Orgnr.genererGyldig()
val vedtaksPeriodeId1 = UUID.randomUUID()
val forespoerselId1 = UUID.randomUUID()
val vedtaksPeriodeId1: UUID = UUID.randomUUID()
val forespoerselId1: UUID = UUID.randomUUID()

val vedtaksPeriodeId2 = UUID.randomUUID()
val forespoerselId2 = UUID.randomUUID()
val vedtaksPeriodeId2: UUID = UUID.randomUUID()
val forespoerselId2: UUID = UUID.randomUUID()

fun mockResultat(): Map<UUID, Forespoersel> =
mapOf(
forespoerselId1 to mockForespoersel().copy(vedtaksperiodeId = vedtaksPeriodeId1, orgnr = orgnr.toString()),
forespoerselId2 to mockForespoersel().copy(vedtaksperiodeId = vedtaksPeriodeId2, orgnr = orgnr.toString()),
forespoerselId1 to mockForespoersel().copy(vedtaksperiodeId = vedtaksPeriodeId1, orgnr = orgnr),
forespoerselId2 to mockForespoersel().copy(vedtaksperiodeId = vedtaksPeriodeId2, orgnr = orgnr),
)

fun mockResultatMedUlikeOrgnr(): Map<UUID, Forespoersel> =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class BerikInntektsmeldingService(
Key.KONTEKST_ID to steg0.transaksjonId.toJson(),
Key.DATA to
data
.plus(Key.ORGNR_UNDERENHETER to setOf(steg1.forespoersel.orgnr).toJson(String.serializer()))
.plus(Key.ORGNR_UNDERENHETER to setOf(steg1.forespoersel.orgnr).toJson(Orgnr.serializer()))
.toJson(),
).also { loggBehovPublisert(BehovType.HENT_VIRKSOMHET_NAVN, it) }
}
Expand All @@ -149,7 +149,7 @@ class BerikInntektsmeldingService(
.plus(
Key.FNR_LISTE to
listOf(
steg1.forespoersel.fnr.let(::Fnr),
steg1.forespoersel.fnr,
steg0.avsenderFnr,
).toJson(Fnr.serializer()),
).toJson(),
Expand All @@ -163,8 +163,8 @@ class BerikInntektsmeldingService(
steg2: Steg2,
steg3: Steg3,
) {
val orgNavn = steg2.orgnrMedNavn[steg1.forespoersel.orgnr.let(::Orgnr)] ?: UKJENT_VIRKSOMHET
val sykmeldtNavn = steg3.personer[steg1.forespoersel.fnr.let(::Fnr)]?.navn ?: UKJENT_NAVN
val orgNavn = steg2.orgnrMedNavn[steg1.forespoersel.orgnr] ?: UKJENT_VIRKSOMHET
val sykmeldtNavn = steg3.personer[steg1.forespoersel.fnr]?.navn ?: UKJENT_NAVN
val avsenderNavn = steg3.personer[steg0.avsenderFnr]?.navn ?: UKJENT_NAVN
val aarsakInnsending = if (steg1.forespoersel.erBesvart) AarsakInnsending.Endring else AarsakInnsending.Ny

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Sykmeldt
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.skjema.SkjemaInntektsmelding
import no.nav.helsearbeidsgiver.felles.domene.Forespoersel
import no.nav.helsearbeidsgiver.felles.domene.ForslagInntekt
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr
import java.time.ZonedDateTime
import java.util.UUID

Expand Down Expand Up @@ -61,12 +59,12 @@ fun mapInntektsmelding(
),
sykmeldt =
Sykmeldt(
fnr = forespoersel.fnr.let(::Fnr),
fnr = forespoersel.fnr,
navn = sykmeldtNavn,
),
avsender =
Avsender(
orgnr = forespoersel.orgnr.let(::Orgnr),
orgnr = forespoersel.orgnr,
orgNavn = virksomhetNavn,
navn = avsenderNavn,
tlf = skjema.avsenderTlf,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,11 @@ private object Mock {

private val sykmeldt =
Person(
fnr = Fnr(forespoersel.fnr),
fnr = forespoersel.fnr,
navn = "Dolly Duck",
)

private val orgnrMedNavn = mapOf(Orgnr(forespoersel.orgnr) to "Lasses kasserollesjappe")
private val orgnrMedNavn = mapOf(forespoersel.orgnr to "Lasses kasserollesjappe")

private val personer =
mapOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ import no.nav.helsearbeidsgiver.felles.test.mock.utenPaakrevdRefusjon
import no.nav.helsearbeidsgiver.utils.test.date.august
import no.nav.helsearbeidsgiver.utils.test.date.desember
import no.nav.helsearbeidsgiver.utils.test.date.juli
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr
import java.time.ZonedDateTime
import kotlin.time.Duration.Companion.seconds
import kotlin.time.toJavaDuration
Expand Down Expand Up @@ -57,13 +55,13 @@ class MapInntektsmeldingKtTest :

sykmeldt shouldBe
Sykmeldt(
fnr = forespoersel.fnr.let(::Fnr),
fnr = forespoersel.fnr,
navn = sykmeldtNavn,
)

avsender shouldBe
Avsender(
orgnr = forespoersel.orgnr.let(::Orgnr),
orgnr = forespoersel.orgnr,
orgNavn = virksomhetNavn,
navn = avsenderNavn,
tlf = skjema.avsenderTlf,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Periode
import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.bestemmendeFravaersdag
import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer
import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.wrapper.Fnr
import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr
import java.time.LocalDate
import java.util.UUID

@Serializable
data class Forespoersel(
val orgnr: String,
val fnr: String,
val orgnr: Orgnr,
val fnr: Fnr,
val vedtaksperiodeId: UUID,
val sykmeldingsperioder: List<Periode>,
val egenmeldingsperioder: List<Periode>,
val bestemmendeFravaersdager: Map<String, LocalDate>,
val bestemmendeFravaersdager: Map<Orgnr, LocalDate>,
val forespurtData: ForespurtData,
val erBesvart: Boolean,
val opprettetUpresisIkkeBruk: LocalDate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ data class ForespoerselFraBro(
) {
fun toForespoersel(): Forespoersel =
Forespoersel(
orgnr = orgnr.verdi,
fnr = fnr.verdi,
orgnr = orgnr,
fnr = fnr,
vedtaksperiodeId = vedtaksperiodeId,
sykmeldingsperioder = sykmeldingsperioder,
egenmeldingsperioder = egenmeldingsperioder,
bestemmendeFravaersdager = bestemmendeFravaersdager.mapKeys { it.key.verdi },
bestemmendeFravaersdager = bestemmendeFravaersdager,
forespurtData = forespurtData,
erBesvart = erBesvart,
opprettetUpresisIkkeBruk = opprettetUpresisIkkeBruk,
Expand Down
Loading
Loading