Skip to content

Commit

Permalink
🔊 Send med ny command context-tilstand og logg denne
Browse files Browse the repository at this point in the history
  • Loading branch information
chsko committed Aug 20, 2024
1 parent 1e426ae commit f341e53
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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<String>()
private val utgåendeTilstandEndringer = mutableListOf<Pair<String, String>>()

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(
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,11 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = 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) {
Expand Down Expand Up @@ -70,14 +73,6 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = 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,
Expand All @@ -92,7 +87,8 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = emptyList()
contextId: UUID,
meldingId: UUID,
) {
publiserTilstandEndring(
publiserTilstandsendring(
"AVBRUTT",
JsonMessage.newMessage(
"kommandokjede_avbrutt",
mutableMapOf(
Expand Down Expand Up @@ -124,7 +120,8 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = emptyList()
utfør(command).also {
if (ferdigstilt || it) {
commandContextDao.ferdig(hendelseId, id).also {
publiserTilstandEndring(
publiserTilstandsendring(
"FERDIGSTILT",
JsonMessage.newMessage(
"kommandokjede_ferdigstilt",
mutableMapOf(
Expand All @@ -137,7 +134,8 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = emptyList()
}
} else {
commandContextDao.suspendert(hendelseId, id, newHash, sti).also {
publiserTilstandEndring(
publiserTilstandsendring(
"SUSPENDERT",
JsonMessage.newMessage(
"kommandokjede_suspendert",
mutableMapOf(
Expand All @@ -154,7 +152,8 @@ internal class CommandContext(private val id: UUID, sti: List<Int> = emptyList()
} catch (rootErr: Exception) {
try {
commandContextDao.feil(hendelseId, id).also {
publiserTilstandEndring(
publiserTilstandsendring(
"FEILET",
JsonMessage.newMessage(
"kommandokjede_feilet",
mutableMapOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
Expand Down

0 comments on commit f341e53

Please sign in to comment.