Skip to content
Open
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
48 changes: 24 additions & 24 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- name: docker-build-push
uses: nais/docker-build-push@v0
if: github.ref == 'refs/heads/main'
if: github.ref == 'refs/heads/feature/støtte_fnr'
id: docker-build-push
with:
team: teamdagpenger
Expand All @@ -43,7 +43,7 @@ jobs:
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}

- name: Archive NAIS yaml
if: github.ref == 'refs/heads/main'
if: github.ref == 'refs/heads/feature/støtte_fnr'
uses: actions/upload-artifact@v4
with:
name: nais-yaml
Expand All @@ -55,7 +55,7 @@ jobs:
deploy-dev:
name: Deploy to dev
needs: [build]
if: github.ref == 'refs/heads/main'
if: github.ref == 'refs/heads/feature/støtte_fnr'
runs-on: ubuntu-latest
environment: dev-fss
steps:
Expand All @@ -74,24 +74,24 @@ jobs:
VARS: .nais/dev-vars.yaml
PRINT_PAYLOAD: true

deploy-prod:
name: Deploy to Production
needs: [build, deploy-dev]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: prod-fss
steps:
- name: Fetch NAIS yaml
uses: actions/download-artifact@v4
with:
name: nais-yaml
path: .nais

- uses: nais/deploy/actions/deploy@v2
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
CLUSTER: prod-fss
RESOURCE: .nais/nais.yaml
VAR: image=${{ needs.build.outputs.image }}
VARS: .nais/prod-vars.yaml
PRINT_PAYLOAD: true
# deploy-prod:
# name: Deploy to Production
# needs: [build, deploy-dev]
# if: github.ref == 'refs/heads/main'
# runs-on: ubuntu-latest
# environment: prod-fss
# steps:
# - name: Fetch NAIS yaml
# uses: actions/download-artifact@v4
# with:
# name: nais-yaml
# path: .nais
#
# - uses: nais/deploy/actions/deploy@v2
# env:
# APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
# CLUSTER: prod-fss
# RESOURCE: .nais/nais.yaml
# VAR: image=${{ needs.build.outputs.image }}
# VARS: .nais/prod-vars.yaml
# PRINT_PAYLOAD: true
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ Henter spesifisert inntekt fra inntekt-api og klassifiserer den.

Gradle brukes som byggverktøy og er bundlet inn.


`./gradlew build`

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 @@ -74,7 +77,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 All @@ -85,7 +94,7 @@ internal class InntektBehovløser(rapidsConnection: RapidsConnection, private va
aktørId,
regelkontekst,
beregningsdato,
null,
fødselsnummer,
callId,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,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 @@ -69,7 +69,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 @@ -119,7 +119,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 @@ -35,7 +35,8 @@ class InntektBehovløserTest {
mockk<InntektHttpClient>().also {
coEvery {
it.getKlassifisertInntekt(
inntektId = "inntektId", callId = any(),
inntektId = "inntektId",
callId = any(),
)
} returns inntekt
}
Expand Down Expand Up @@ -117,14 +118,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 @@ -64,6 +65,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