Skip to content

Commit 1b08df7

Browse files
committed
Publish unvalidated order lines on the rapid for hm-kommune-api to pick up.
1 parent 753f850 commit 1b08df7

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/main/kotlin/no/nav/hjelpemidler/api/OrdrelinjeAPI.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,14 @@ import no.nav.hjelpemidler.Context
1717
import no.nav.hjelpemidler.configuration.Configuration
1818
import no.nav.hjelpemidler.model.OrdrelinjeMessage
1919
import no.nav.hjelpemidler.model.OrdrelinjeOebs
20+
import no.nav.hjelpemidler.model.UvalidertOrdrelinjeMessage
2021
import no.nav.hjelpemidler.model.erOpprettetFraHOTSAK
2122
import opprettHotsakOrdrelinje
2223
import opprettInfotrygdOrdrelinje
2324
import parseHotsakOrdrelinje
2425
import parseInfotrygdOrdrelinje
26+
import java.time.LocalDateTime
27+
import java.util.UUID
2528

2629
private val logg = KotlinLogging.logger {}
2730
private val sikkerlogg = KotlinLogging.logger("tjenestekall")
@@ -39,6 +42,7 @@ internal fun Route.ordrelinjeAPI(context: Context) {
3942

4043
try {
4144
val ordrelinje = parseOrdrelinje(context, call) ?: return@post
45+
sendUvalidertOrdrelinjeTilRapid(context, ordrelinje)
4246
validerOrdrelinje(context, ordrelinje)
4347
val melding = if (ordrelinje.erOpprettetFraHOTSAK()) {
4448
parseHotsakOrdrelinje(context, ordrelinje)
@@ -107,6 +111,23 @@ private suspend fun parseOrdrelinje(context: Context, call: ApplicationCall): Or
107111
}
108112
}
109113

114+
private fun sendUvalidertOrdrelinjeTilRapid(context: Context, ordrelinje: OrdrelinjeOebs) {
115+
try {
116+
logg.info("Publiserer uvalidert ordrelinje med OebsId ${ordrelinje.oebsId} til rapid i miljø ${Configuration.application["APP_PROFILE"]}")
117+
context.publish(ordrelinje.fnrBruker, mapperJson.writeValueAsString(UvalidertOrdrelinjeMessage(
118+
eventId = UUID.randomUUID(),
119+
eventName = "hm-uvalidert-ordrelinje",
120+
eventCreated = LocalDateTime.now(),
121+
orderLine = ordrelinje,
122+
)))
123+
context.metrics.meldingTilRapidSuksess()
124+
} catch (e: Exception) {
125+
context.metrics.meldingTilRapidFeilet()
126+
sikkerlogg.error("Sending av uvalidert ordrelinje til rapid feilet, exception: $e\n\n${e.printStackTrace()}")
127+
throw RapidsAndRiverException("Noe gikk feil ved publisering av melding")
128+
}
129+
}
130+
110131
private fun validerOrdrelinje(context: Context, ordrelinje: OrdrelinjeOebs) {
111132
if (ordrelinje.serviceforespørseltype != "Vedtak Infotrygd") {
112133
if (ordrelinje.serviceforespørseltype == "") {

src/main/kotlin/no/nav/hjelpemidler/model/OrdrelinjeMessage.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,11 @@ data class SfMessage(
2121
val opprettet: LocalDateTime,
2222
val data: ServiceForespørselEndring,
2323
)
24+
25+
data class UvalidertOrdrelinjeMessage(
26+
val eventId: UUID,
27+
val eventName: String,
28+
@JsonFormat(shape = JsonFormat.Shape.STRING)
29+
val eventCreated: LocalDateTime,
30+
val orderLine: OrdrelinjeOebs,
31+
)

0 commit comments

Comments
 (0)