From f341e53ce51a6e6499518bb2cb26a511584714ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20B=C3=BClow=20Skovborg?= Date: Tue, 20 Aug 2024 15:32:02 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8A=20Send=20med=20ny=20command=20cont?= =?UTF-8?q?ext-tilstand=20og=20logg=20denne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommandContextTilstandMediator.kt | 22 ++++++++++----- .../helse/modell/kommando/CommandContext.kt | 27 +++++++++---------- .../modell/kommando/CommandContextTest.kt | 2 +- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/CommandContextTilstandMediator.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/CommandContextTilstandMediator.kt index d955326e3..a6629eaf7 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/CommandContextTilstandMediator.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/CommandContextTilstandMediator.kt @@ -5,14 +5,20 @@ import no.nav.helse.rapids_rivers.MessageContext import org.slf4j.LoggerFactory internal interface CommandContextObserver : UtgåendeMeldingerObserver { - fun tilstandEndring(hendelse: String) {} + fun tilstandEndret( + nyTilstand: String, + hendelse: String, + ) {} } internal class CommandContextTilstandMediator : CommandContextObserver { - private val utgåendeTilstandEndringer = mutableListOf() + private val utgåendeTilstandEndringer = mutableListOf>() - override fun tilstandEndring(hendelse: String) { - utgåendeTilstandEndringer.add(hendelse) + override fun tilstandEndret( + nyTilstand: String, + hendelse: String, + ) { + utgåendeTilstandEndringer.add(nyTilstand to hendelse) } internal fun publiserTilstandsendringer( @@ -27,10 +33,12 @@ internal class CommandContextTilstandMediator : CommandContextObserver { hendelse: Personmelding, messageContext: MessageContext, ) { - utgåendeTilstandEndringer.forEach { utgåendeTilstandEndringer -> - logg.info("Publiserer CommandContext tilstandendring i forbindelse med ${hendelse.javaClass.simpleName}") + utgåendeTilstandEndringer.forEach { (nyTilstand, utgåendeTilstandEndringer) -> + logg.info( + "Publiserer CommandContext tilstandendring i forbindelse med ${hendelse.javaClass.simpleName}, ny tilstand: $nyTilstand", + ) sikkerlogg.info( - "Publiserer CommandContext tilstandendring i forbindelse med ${hendelse.javaClass.simpleName}\n{}", + "Publiserer CommandContext tilstandendring i forbindelse med ${hendelse.javaClass.simpleName}, ny tilstand: $nyTilstand\n{}", utgåendeTilstandEndringer, ) messageContext.publish(hendelse.fødselsnummer(), utgåendeTilstandEndringer) diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/CommandContext.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/CommandContext.kt index bcdea24c3..1aa847bed 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/CommandContext.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/CommandContext.kt @@ -40,8 +40,11 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() observers.forEach { it.hendelse(melding) } } - private fun publiserTilstandEndring(melding: String) { - observers.forEach { it.tilstandEndring(melding) } + private fun publiserTilstandsendring( + nyTilstand: String, + melding: String, + ) { + observers.forEach { it.tilstandEndret(nyTilstand, melding) } } internal fun add(data: Any) { @@ -70,14 +73,6 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() commandContextDao.opprett(hendelseId, id) } - internal fun avbryt( - commandContextDao: CommandContextDao, - meldingId: UUID, - ) { - commandContextDao.avbrutt(meldingId, id) - publiserAvbrutt(id, meldingId) - } - internal fun avbrytAlleForPeriode( commandContextDao: CommandContextDao, vedtaksperiodeId: UUID, @@ -92,7 +87,8 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() contextId: UUID, meldingId: UUID, ) { - publiserTilstandEndring( + publiserTilstandsendring( + "AVBRUTT", JsonMessage.newMessage( "kommandokjede_avbrutt", mutableMapOf( @@ -124,7 +120,8 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() utfør(command).also { if (ferdigstilt || it) { commandContextDao.ferdig(hendelseId, id).also { - publiserTilstandEndring( + publiserTilstandsendring( + "FERDIGSTILT", JsonMessage.newMessage( "kommandokjede_ferdigstilt", mutableMapOf( @@ -137,7 +134,8 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() } } else { commandContextDao.suspendert(hendelseId, id, newHash, sti).also { - publiserTilstandEndring( + publiserTilstandsendring( + "SUSPENDERT", JsonMessage.newMessage( "kommandokjede_suspendert", mutableMapOf( @@ -154,7 +152,8 @@ internal class CommandContext(private val id: UUID, sti: List = emptyList() } catch (rootErr: Exception) { try { commandContextDao.feil(hendelseId, id).also { - publiserTilstandEndring( + publiserTilstandsendring( + "FEILET", JsonMessage.newMessage( "kommandokjede_feilet", mutableMapOf( diff --git a/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/CommandContextTest.kt b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/CommandContextTest.kt index 7b05507f5..1fc5846ff 100644 --- a/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/CommandContextTest.kt +++ b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/CommandContextTest.kt @@ -44,7 +44,7 @@ internal class CommandContextTest { this.hendelser.add(hendelse) } - override fun tilstandEndring(hendelse: String) { + override fun tilstandEndret(nyTilstand: String, hendelse: String) { this.utgåendeTilstandEndringer.add(hendelse) } }