Skip to content

Commit

Permalink
leser inn vedtaksperioder_venter
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsteinsland committed Nov 26, 2024
1 parent bf46364 commit 06208e9
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 31 deletions.
8 changes: 1 addition & 7 deletions src/main/kotlin/no/nav/helse/ventetilstand/Hendelse.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
package no.nav.helse.ventetilstand

import com.github.navikt.tbd_libs.rapids_and_rivers_api.RapidsConnection
import com.github.navikt.tbd_libs.rapids_and_rivers_api.MessageContext
import com.github.navikt.tbd_libs.rapids_and_rivers_api.MessageProblems
import com.github.navikt.tbd_libs.rapids_and_rivers.River
import com.github.navikt.tbd_libs.rapids_and_rivers.JsonMessage
import com.github.navikt.tbd_libs.rapids_and_rivers.asLocalDateTime
import com.github.navikt.tbd_libs.rapids_and_rivers.asLocalDate
import java.util.UUID
import java.util.*

internal class Hendelse (
internal val id: UUID,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package no.nav.helse.ventetilstand

import com.github.navikt.tbd_libs.rapids_and_rivers_api.RapidsConnection
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.module.kotlin.convertValue
import com.github.navikt.tbd_libs.rapids_and_rivers.*
import com.github.navikt.tbd_libs.rapids_and_rivers_api.MessageContext
import com.github.navikt.tbd_libs.rapids_and_rivers.River
import com.github.navikt.tbd_libs.rapids_and_rivers.JsonMessage
import com.github.navikt.tbd_libs.rapids_and_rivers.asLocalDateTime
import com.github.navikt.tbd_libs.rapids_and_rivers.asLocalDate
import com.github.navikt.tbd_libs.rapids_and_rivers.isMissingOrNull
import com.github.navikt.tbd_libs.rapids_and_rivers_api.MessageMetadata
import com.github.navikt.tbd_libs.rapids_and_rivers_api.RapidsConnection
import io.micrometer.core.instrument.MeterRegistry
import no.nav.helse.objectMapper
import java.time.LocalDate
import java.time.LocalDateTime
import java.util.*

internal class VedtaksperiodeVenterRiver (
Expand All @@ -17,6 +18,24 @@ internal class VedtaksperiodeVenterRiver (
) : River.PacketListener {

init {
River(rapidApplication).apply {
precondition { it.requireValue("@event_name", "vedtaksperioder_venter") }
validate { it.requireKey("@id", "fødselsnummer") }
validate {
it.requireArray("vedtaksperioder") {
requireKey(
"venterPå.venteårsak.hva",
"venterPå.vedtaksperiodeId",
"venterPå.skjæringstidspunkt",
"venterPå.organisasjonsnummer"
)
interestedIn("venterPå.venteårsak.hvorfor")
requireKey("vedtaksperiodeId", "skjæringstidspunkt", "organisasjonsnummer", "ventetSiden", "venterTil")
}
}
}.register(this)

// todo: deprecated river
River(rapidApplication).apply {
precondition { it.requireValue("@event_name", "vedtaksperiode_venter") }
validate { it.requireKey(
Expand All @@ -35,11 +54,32 @@ internal class VedtaksperiodeVenterRiver (
"venterTil",
"fødselsnummer"
) }
}.register(this)
}.register(object : River.PacketListener {
override fun onPacket(packet: JsonMessage, context: MessageContext, metadata: MessageMetadata, meterRegistry: MeterRegistry) {
dao.venter(packet.vedtaksperiodeVenter, packet.hendelse)
}
})
}

override fun onPacket(packet: JsonMessage, context: MessageContext, metadata: MessageMetadata, meterRegistry: MeterRegistry) {
dao.venter(packet.vedtaksperiodeVenter, packet.hendelse)
packet["vedtaksperioder"].forEach { t ->
val dto = objectMapper.convertValue<VedtaksperiodeVenterDto>(t)
dao.venter(VedtaksperiodeVenter.opprett(
vedtaksperiodeId = dto.vedtaksperiodeId,
skjæringstidspunkt = dto.skjæringstidspunkt,
fødselsnummer = packet["fødselsnummer"].asText(),
organisasjonsnummer = dto.organisasjonsnummer,
ventetSiden = dto.ventetSiden,
venterTil = dto.venterTil,
venterPå = VenterPå(
vedtaksperiodeId = dto.venterPå.vedtaksperiodeId,
organisasjonsnummer = dto.venterPå.organisasjonsnummer,
skjæringstidspunkt = dto.venterPå.skjæringstidspunkt,
hva = dto.venterPå.venteårsak.hva,
hvorfor = dto.venterPå.venteårsak.hvorfor
)
), packet.hendelse)
}
}

private companion object {
Expand All @@ -59,4 +99,28 @@ internal class VedtaksperiodeVenterRiver (
)
)
}
}

@JsonIgnoreProperties(ignoreUnknown = true)
private data class VedtaksperiodeVenterDto(
val organisasjonsnummer: String,
val vedtaksperiodeId: UUID,
val skjæringstidspunkt: LocalDate,
val ventetSiden: LocalDateTime,
val venterTil: LocalDateTime,
val venterPå: VenterPå
) {
@JsonIgnoreProperties(ignoreUnknown = true)
data class VenterPå(
val vedtaksperiodeId: UUID,
val organisasjonsnummer: String,
val skjæringstidspunkt: LocalDate,
val venteårsak: Venteårsak
)

@JsonIgnoreProperties(ignoreUnknown = true)
data class Venteårsak(
val hva : String,
val hvorfor: String?
)
}
36 changes: 20 additions & 16 deletions src/test/kotlin/no/nav/helse/VedtaksperiodeVentetilstandTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -215,23 +215,27 @@ internal class VedtaksperiodeVentetilstandTest {
ventetSiden: LocalDateTime = LocalDateTime.parse("2023-03-04T21:34:17.96322")
) = """
{
"@event_name": "vedtaksperiode_venter",
"organisasjonsnummer": "123456789",
"vedtaksperiodeId": "$vedtaksperiodeId",
"skjæringstidspunkt": "2019-01-01",
"ventetSiden": "$ventetSiden",
"venterTil": "+999999999-12-31T23:59:59.999999999",
"venterPå": {
"vedtaksperiodeId": "$venterPåVedtaksperiodeId",
"skjæringstidspunkt": "2018-01-01",
"organisasjonsnummer": "987654321",
"venteårsak": {
"hva": "$venterPå",
"hvorfor": ${venterPåHvorfor?.let { "\"$it\"" }}
}
},
"@event_name": "vedtaksperioder_venter",
"@id": "$hendelseId",
"fødselsnummer": "$fødselsnummer"
"fødselsnummer": "$fødselsnummer",
"vedtaksperioder": [
{
"organisasjonsnummer": "123456789",
"vedtaksperiodeId": "$vedtaksperiodeId",
"skjæringstidspunkt": "2019-01-01",
"ventetSiden": "$ventetSiden",
"venterTil": "+999999999-12-31T23:59:59.999999999",
"venterPå": {
"vedtaksperiodeId": "$venterPåVedtaksperiodeId",
"skjæringstidspunkt": "2018-01-01",
"organisasjonsnummer": "987654321",
"venteårsak": {
"hva": "$venterPå",
"hvorfor": ${venterPåHvorfor?.let { "\"$it\"" }}
}
}
}
]
}
"""

Expand Down

0 comments on commit 06208e9

Please sign in to comment.