Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import mu.KotlinLogging
import mu.withLoggingContext
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.aktørId
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.beregningsdato
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.fødselsnummer
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.hentRegelkontekst
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.inntektsId
import no.nav.helse.rapids_rivers.JsonMessage
Expand All @@ -23,6 +24,7 @@ internal class InntektBehovløser(rapidsConnection: RapidsConnection, private va
const val BEHOV_ID = "behovId"
const val INNTEKT = "inntektV1"
const val AKTØRID = "aktørId"
const val FØDSELSNUMMER = "fødselsnummer"
const val MANUELT_GRUNNLAG = "manueltGrunnlag"
const val FORRIGE_GRUNNLAG = "forrigeGrunnlag"
const val BEREGNINGSDATO = "beregningsDato"
Expand All @@ -39,6 +41,7 @@ internal class InntektBehovløser(rapidsConnection: RapidsConnection, private va
AKTØRID,
KONTEKST_ID,
KONTEKST_TYPE,
FØDSELSNUMMER,
)
}
validate { it.rejectKey(INNTEKT, MANUELT_GRUNNLAG, FORRIGE_GRUNNLAG) }
Expand Down Expand Up @@ -73,7 +76,13 @@ internal class InntektBehovløser(rapidsConnection: RapidsConnection, private va
}

else -> {
val aktørId: String = packet.aktørId() ?: throw IllegalArgumentException("Mangler aktørId")
val aktørId: String? = packet.aktørId()
val fødselsnummer: String? = packet.fødselsnummer()

if (aktørId == null && fødselsnummer == null) {
throw IllegalArgumentException("Mangler aktørId eller fødselsnummer")
}

requireNotNull(regelkontekst) { "Må ha en kontekst for å hente inntekt" }

val beregningsdato: LocalDate =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ internal class InntektHttpClient(
private val tokenProvider: () -> String,
) {
suspend fun getKlassifisertInntekt(
aktørId: String,
aktørId: String?,
regelkontekst: RegelKontekst,
beregningsDato: LocalDate,
fødselsnummer: String?,
Expand Down Expand Up @@ -70,7 +70,7 @@ internal class InntektHttpClient(
}

private suspend inline fun <reified T : Any> getInntekt(
aktørId: String,
aktørId: String?,
regelkontekst: RegelKontekst,
beregningsDato: LocalDate,
fødselsnummer: String?,
Expand Down Expand Up @@ -120,7 +120,7 @@ internal class InntektHttpClient(
}

private data class InntektRequest(
val aktørId: String,
val aktørId: String?,
val fødselsnummer: String? = null,
val regelkontekst: RegelKontekst,
val beregningsDato: LocalDate,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.dagpenger.inntekt.klassifiserer
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.AKTØRID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEHOV_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEREGNINGSDATO
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.FØDSELSNUMMER
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.INNTEKT_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.KONTEKST_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.KONTEKST_TYPE
Expand All @@ -29,6 +30,12 @@ object PacketParser {
false -> null
}

fun JsonMessage.fødselsnummer() =
when (this.harVerdi(FØDSELSNUMMER)) {
true -> this[FØDSELSNUMMER].asText()
false -> null
}

fun JsonMessage.behovId() =
when (this.harVerdi(BEHOV_ID)) {
true -> this[BEHOV_ID].asText()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,13 @@ class InntektBehovløserTest {
"$KONTEKST_ID" : "kontekstId",
"$BEHOV_ID":"kaktus"
}

""".trimIndent(),
)
}
}

@Test
fun `Kaster exception dersom aktørId ikke er satt for behov uten inntektId`() {
fun `Kaster exception dersom aktørId eller fødselsnummer ikke er satt for behov uten inntektId`() {
InntektBehovløser(testRapid, mockk())

shouldThrow<IllegalArgumentException> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ import io.kotest.matchers.shouldBe
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.AKTØRID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEHOV_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEREGNINGSDATO
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.FØDSELSNUMMER
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.INNTEKT_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.KONTEKST_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.KONTEKST_TYPE
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.aktørId
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.behovId
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.beregningsdato
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.fødselsnummer
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.hentRegelkontekst
import no.nav.dagpenger.inntekt.klassifiserer.PacketParser.inntektsId
import no.nav.helse.rapids_rivers.JsonMessage
Expand Down Expand Up @@ -65,6 +67,17 @@ class PacketParserTest {
behovløser.packet.aktørId() shouldBe null
}

@Test
fun `Skal mappe fødselnummer`() {
val behovløser = OnPacketTestListener(testRapid)

testRapid.sendTestMessage(testMessageMedRequiredFelter(mapOf(FØDSELSNUMMER to "fnr")))
behovløser.packet.fødselsnummer() shouldBe "fnr"

testRapid.sendTestMessage(testMessageMedRequiredFelter())
behovløser.packet.fødselsnummer() shouldBe null
}

@Test
fun `Skal mappe RegelKontekst`() {
val behovløser = OnPacketTestListener(testRapid)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.AKTØ
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEHOV_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.BEREGNINGSDATO
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.FORRIGE_GRUNNLAG
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.FØDSELSNUMMER
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.INNTEKT
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.INNTEKT_ID
import no.nav.dagpenger.inntekt.klassifiserer.InntektBehovløser.Companion.KONTEKST_ID
Expand Down Expand Up @@ -56,6 +57,7 @@ class RapidFilterTest {
testListener.jsonMessage[BEREGNINGSDATO]
testListener.jsonMessage[INNTEKT_ID]
testListener.jsonMessage[AKTØRID]
testListener.jsonMessage[FØDSELSNUMMER]
testListener.jsonMessage[KONTEKST_ID]
testListener.jsonMessage[KONTEKST_TYPE]
}
Expand Down