Skip to content

Commit

Permalink
interface for baseclass
Browse files Browse the repository at this point in the history
  • Loading branch information
olesls committed Aug 20, 2024
1 parent 174d75c commit e67d4ad
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import no.nav.hjelpemidler.soknad.db.soknad.lagSøknadId
import no.nav.hjelpemidler.soknad.db.test.readTree
import org.junit.jupiter.api.Test

class BehovsmeldingDataValideringTest {
class BehovsmeldingBaseDataValideringTest {
@Test
fun `Validering av en normal søknad i dagens format`() {
val søknadId = lagSøknadId()
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package no.nav.hjelpemidler.behovsmeldingsmodell.v2

import no.nav.hjelpemidler.behovsmeldingsmodell.BehovsmeldingType
import no.nav.hjelpemidler.behovsmeldingsmodell.Fødselsnummer
import java.time.LocalDate
import java.util.UUID

interface BehovsmeldingBase {
val id: UUID
val type: BehovsmeldingType
val innsendingsdato: LocalDate
val prioritet: Prioritet
val hjmBrukersFnr: Fødselsnummer
val innsendersFnr: Fødselsnummer
val skjemaversjon: Int
}

/*
Minimal Behovsmelding-klasse som er den som legges på Kafka og som
dekker behovet til de apper som ikke har behov for å vise frem hele behovsmeldingen.
*/
// TODO: Synes vi dette er nyttig, eller vil vi heller ha feks. supersmå events (eventname+søknadId)
// og flere kall til soknadsbehandling-db?
data class Behovsmelding(
override val id: UUID,
override val type: BehovsmeldingType,
override val innsendingsdato: LocalDate,
override val prioritet: Prioritet,
override val hjmBrukersFnr: Fødselsnummer,
override val innsendersFnr: Fødselsnummer,
override val skjemaversjon: Int,
) : BehovsmeldingBase
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,31 @@ import no.nav.hjelpemidler.behovsmeldingsmodell.BehovsmeldingType
import no.nav.hjelpemidler.behovsmeldingsmodell.Fødselsnummer
import no.nav.hjelpemidler.behovsmeldingsmodell.Personnavn
import no.nav.hjelpemidler.behovsmeldingsmodell.Veiadresse
import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerpassbytte // TODO flytt ut felles enums
import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerpassbytte
import java.time.LocalDate
import java.util.UUID

class Brukerpassbytte(
id: UUID,
innsendingsdato: LocalDate,
hjmBrukersFnr: Fødselsnummer,
innsendersFnr: Fødselsnummer,

data class Brukerpassbytte(
val navn: Personnavn,
val folkeregistrertAdresse: Veiadresse,
val annenUtleveringsadresse: Veiadresse?,
val hjelpemiddel: Hjelpemiddel,
val bytteårsak: Brukerpassbytte.Bytteårsak,
val byttebegrunnelse: String?,
val utleveringsmåte: Brukerpassbytte.Utleveringsmåte,
) : Behovsmelding(
id = id,
type = BehovsmeldingType.BRUKERPASSBYTTE,
innsendingsdato = innsendingsdato,
hjmBrukersFnr = hjmBrukersFnr,
innsendersFnr = innsendersFnr,
prioritet = Prioritet.NORMAL,
) {

override val id: UUID,
override val type: BehovsmeldingType = BehovsmeldingType.BRUKERPASSBYTTE,
override val skjemaversjon: Int = 2,
override val innsendingsdato: LocalDate,
override val hjmBrukersFnr: Fødselsnummer,
override val innsendersFnr: Fødselsnummer = hjmBrukersFnr,
override val prioritet: Prioritet = Prioritet.NORMAL,
) : BehovsmeldingBase {
data class Hjelpemiddel(
val artnr: String, // TODO skal vi standardisere på artnr eller hmsnr?
val navn: String,
val kategori: String, // rename til iso6Navn?
val hmsArtNr: String,
val artikkelnavn: String,
val iso6Tittel: String,
val iso6: Iso6,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,21 @@ import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Hast
import java.time.LocalDate
import java.util.UUID

class Formidlerbehovsmelding(
id: UUID,
type: BehovsmeldingType,
innsendingsdato: LocalDate,

data class Formidlerbehovsmelding(
val bruker: Bruker,
val brukersituasjon: Brukersituasjon,
val hjelpemidler: Hjelpemidler,
val levering: Levering,
val innsender: Innsender,
) : Behovsmelding(
id = id,
type = type,
innsendingsdato = innsendingsdato,
prioritet = tilPrioritet(levering.hast),
hjmBrukersFnr = bruker.fnr,
innsendersFnr = innsender.fnr,
)

override val id: UUID,
override val type: BehovsmeldingType,
override val innsendingsdato: LocalDate,
override val skjemaversjon: Int = 2,
override val hjmBrukersFnr: Fødselsnummer = bruker.fnr,
override val innsendersFnr: Fødselsnummer = innsender.fnr,
override val prioritet: Prioritet = tilPrioritet(levering.hast),
) : BehovsmeldingBase

data class Bruker(
val fnr: Fødselsnummer,
Expand All @@ -47,10 +44,7 @@ data class Bruker(
val kommunenummer: String?,
val brukernummer: String?,
val kilde: Brukerkilde?,

// val kroppsmål: Kroppsmål?, // TODO kun som info på relevenate hjm.
// val erInformertOmRettigheter: Boolean?, // TODO brukersituasjon???
// val borIPilotkommuneForHast: Boolean? = false, // TODO brukes kun i hm-soknad-api for statistikk
val erInformertOmRettigheter: Boolean?, // brukt i forbindelse med fritak fra fullmakt (covid)
)

data class Brukersituasjon(
Expand Down Expand Up @@ -97,7 +91,6 @@ data class Innsender(
val rolle: InnsenderRolle,
val kurs: List<Godkjenningskurs>,
val sjekketUtlånsoversiktForKategorier: Set<Iso6>,
// val organisasjoner: List<Organisasjon>, // TODO hva brukes denne til?
)

data class Hjelpemidler(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.hjelpemidler.behovsmeldingsmodell.v2.mapping

import no.nav.hjelpemidler.behovsmeldingsmodell.Personnavn
import no.nav.hjelpemidler.behovsmeldingsmodell.Veiadresse
import no.nav.hjelpemidler.behovsmeldingsmodell.v2.Behovsmelding
import no.nav.hjelpemidler.behovsmeldingsmodell.v2.BehovsmeldingBase
import no.nav.hjelpemidler.behovsmeldingsmodell.v2.Brukerpassbytte
import no.nav.hjelpemidler.behovsmeldingsmodell.v2.Iso6

Expand Down Expand Up @@ -30,9 +30,9 @@ fun tilBrukerpassbytteV2(v1: no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerp
}

val hjelpemiddel = Brukerpassbytte.Hjelpemiddel(
artnr = v1.hjelpemiddel.artnr,
navn = v1.hjelpemiddel.navn,
kategori = v1.hjelpemiddel.kategori,
hmsArtNr = v1.hjelpemiddel.artnr,
artikkelnavn = v1.hjelpemiddel.navn,
iso6Tittel = v1.hjelpemiddel.kategori,
iso6 = Iso6(v1.hjelpemiddel.kategorinummer ?: error("brukerpassbytte hjelpemiddel.kategorinummer var null")),
)

Expand All @@ -51,5 +51,5 @@ fun tilBrukerpassbytteV2(v1: no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerp
)
}

fun tilBehovsmeldingV2(v1: no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerpassbytte): Behovsmelding =
fun tilBehovsmeldingV2(v1: no.nav.hjelpemidler.behovsmeldingsmodell.v1.Brukerpassbytte): BehovsmeldingBase =
tilBrukerpassbytteV2(v1)
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ fun tilFormidlerbehovsmeldingV2(
bruker = Bruker(
fnr = v1Bruker.fnr,
navn = v1Bruker.navn,
signaturtype = v1Bruker.signaturtype
?: error("Behovsmelding $id mangler signaturtype"), // TODO hva var reel signaturtype før det ble innført?
signaturtype = v1Bruker.signaturtype ?: error("Behovsmelding $id mangler signaturtype"),
telefon = v1Bruker.telefon,
veiadresse = v1Bruker.veiadresse,
kommunenummer = v1Bruker.kommunenummer,
brukernummer = v1Bruker.brukernummer,
kilde = v1Bruker.kilde,
erInformertOmRettigheter = v1Bruker.erInformertOmRettigheter,
),
brukersituasjon = Brukersituasjon(
bekreftedeVilkår = v1.søknad.brukersituasjon.bekreftedeVilkår,
Expand Down Expand Up @@ -93,7 +93,7 @@ fun tilFormidlerbehovsmeldingV2(
),
innsender = Innsender(
fnr = fnrInnsender,
rolle = v1.søknad.innsender?.somRolle ?: InnsenderRolle.FORMIDLER, // TODO Kan vi anta dette?
rolle = v1.søknad.innsender?.somRolle ?: InnsenderRolle.FORMIDLER,
kurs = v1.søknad.innsender?.godkjenningskurs ?: emptyList(),
sjekketUtlånsoversiktForKategorier = v1.søknad.innsender?.tjenestligeBehovForUtlånsoversikt?.map {
Iso6(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import no.nav.hjelpemidler.behovsmeldingsmodell.v1.BehovsmeldingResponse
import org.junit.jupiter.api.assertDoesNotThrow
import kotlin.test.Test

class BehovsmeldingTest {
class BehovsmeldingBaseTest {
@Test
fun `Skal kunne deserialisere både gammel og ny JSON til felles behovsmeldingsmodell`() {
assertDoesNotThrow {
Expand Down

0 comments on commit e67d4ad

Please sign in to comment.