1
1
package no.nav.paw.bekreftelsetjeneste.topology
2
2
3
3
import arrow.core.andThen
4
+ import io.opentelemetry.api.common.Attributes
5
+ import io.opentelemetry.api.trace.Span
6
+ import io.opentelemetry.api.trace.SpanKind.INTERNAL
4
7
import io.opentelemetry.instrumentation.annotations.WithSpan
5
8
import no.nav.paw.bekreftelse.internehendelser.BekreftelseHendelse
6
9
import no.nav.paw.bekreftelse.internehendelser.BekreftelseTilgjengelig
@@ -9,6 +12,7 @@ import no.nav.paw.bekreftelse.internehendelser.RegisterGracePeriodeGjenstaaendeT
9
12
import no.nav.paw.bekreftelse.internehendelser.RegisterGracePeriodeUtloept
10
13
import no.nav.paw.bekreftelsetjeneste.tilstand.Bekreftelse
11
14
import no.nav.paw.bekreftelsetjeneste.tilstand.BekreftelseTilstand
15
+ import no.nav.paw.bekreftelsetjeneste.tilstand.BekreftelseTilstandStatus
12
16
import no.nav.paw.bekreftelsetjeneste.tilstand.BekreftelseTilstandsLogg
13
17
import no.nav.paw.bekreftelsetjeneste.tilstand.GracePeriodeUtloept
14
18
import no.nav.paw.bekreftelsetjeneste.tilstand.GracePeriodeVarselet
@@ -30,7 +34,8 @@ import java.util.*
30
34
31
35
32
36
@WithSpan(
33
-
37
+ value = " punctuator_process bekreftelse_tilstand" ,
38
+ kind = INTERNAL
34
39
)
35
40
fun BekreftelseContext.prosesser (bekreftelseTilstand : BekreftelseTilstand ): BekreftelseProsesseringsResultat =
36
41
(::opprettInitielBekreftelse andThen
@@ -54,6 +59,15 @@ fun BekreftelseContext.opprettInitielBekreftelse(bekreftelser: List<Bekreftelse>
54
59
startTid = fra,
55
60
interval = konfigurasjon.interval
56
61
)
62
+ Span .current().addEvent(
63
+ intern,
64
+ Attributes .of(
65
+ actionKey, bekreftelseOpprettetAction,
66
+ initielBekreftelseKey, true ,
67
+ fraOgMedDagKey, fra.tilFraTilAttributeKeyValue(),
68
+ tilDagKey, til.tilFraTilAttributeKeyValue()
69
+ )
70
+ )
57
71
pawNonEmptyListOf(
58
72
Bekreftelse (
59
73
bekreftelseId = UUID .randomUUID(),
@@ -72,10 +86,21 @@ fun BekreftelseContext.opprettManglendeBekreftelser(bekreftelser: PawNonEmptyLis
72
86
val siste = bekreftelser.maxBy { it.gjelderTil }
73
87
val ventende = bekreftelser.toList().filter { it.sisteTilstand() is VenterPaaSvar }
74
88
return if (siste.gjelderTil.isBefore(wallClock.value) && ventende.size < konfigurasjon.maksAntallVentendeBekreftelser) {
89
+ val fra = siste.gjelderTil
90
+ val til = sluttTidForBekreftelsePeriode(siste.gjelderTil, konfigurasjon.interval)
91
+ Span .current().addEvent(
92
+ intern,
93
+ Attributes .of(
94
+ actionKey, bekreftelseOpprettetAction,
95
+ initielBekreftelseKey, true ,
96
+ fraOgMedDagKey, fra.tilFraTilAttributeKeyValue(),
97
+ tilDagKey, til.tilFraTilAttributeKeyValue()
98
+ )
99
+ )
75
100
val neste = Bekreftelse (
76
101
bekreftelseId = UUID .randomUUID(),
77
- gjelderFra = siste.gjelderTil ,
78
- gjelderTil = sluttTidForBekreftelsePeriode(siste.gjelderTil, konfigurasjon.interval) ,
102
+ gjelderFra = fra ,
103
+ gjelderTil = til ,
79
104
tilstandsLogg = BekreftelseTilstandsLogg (
80
105
siste = IkkeKlarForUtfylling (wallClock.value),
81
106
tidligere = emptyList()
@@ -91,7 +116,7 @@ fun BekreftelseContext.oppdaterBekreftelser(bekreftelser: PawNonEmptyList<Bekref
91
116
bekreftelser.map { bekreftelse ->
92
117
when {
93
118
bekreftelse.erKlarForUtfylling(wallClock.value, konfigurasjon.tilgjengeligOffset) -> {
94
- bekreftelse.plus (KlarForUtfylling (wallClock.value)) to BekreftelseTilgjengelig (
119
+ bekreftelse.setStatus (KlarForUtfylling (wallClock.value)) to BekreftelseTilgjengelig (
95
120
hendelseId = UUID .randomUUID(),
96
121
periodeId = periodeInfo.periodeId,
97
122
arbeidssoekerId = periodeInfo.arbeidsoekerId,
@@ -103,7 +128,7 @@ fun BekreftelseContext.oppdaterBekreftelser(bekreftelser: PawNonEmptyList<Bekref
103
128
}
104
129
105
130
bekreftelse.harFristUtloept(wallClock.value) -> {
106
- bekreftelse.plus (VenterSvar (wallClock.value)) to LeveringsfristUtloept (
131
+ bekreftelse.setStatus (VenterSvar (wallClock.value)) to LeveringsfristUtloept (
107
132
hendelseId = UUID .randomUUID(),
108
133
periodeId = periodeInfo.periodeId,
109
134
arbeidssoekerId = periodeInfo.arbeidsoekerId,
@@ -117,7 +142,7 @@ fun BekreftelseContext.oppdaterBekreftelser(bekreftelser: PawNonEmptyList<Bekref
117
142
wallClock.value,
118
143
konfigurasjon.varselFoerGraceperiodeUtloept
119
144
) -> {
120
- bekreftelse.plus (GracePeriodeVarselet (wallClock.value)) to RegisterGracePeriodeGjenstaaendeTid (
145
+ bekreftelse.setStatus (GracePeriodeVarselet (wallClock.value)) to RegisterGracePeriodeGjenstaaendeTid (
121
146
hendelseId = UUID .randomUUID(),
122
147
periodeId = periodeInfo.periodeId,
123
148
arbeidssoekerId = periodeInfo.arbeidsoekerId,
@@ -131,7 +156,7 @@ fun BekreftelseContext.oppdaterBekreftelser(bekreftelser: PawNonEmptyList<Bekref
131
156
}
132
157
133
158
bekreftelse.harGraceperiodeUtloept(wallClock.value, konfigurasjon.graceperiode) -> {
134
- bekreftelse.plus (GracePeriodeUtloept (wallClock.value)) to RegisterGracePeriodeUtloept (
159
+ bekreftelse.setStatus (GracePeriodeUtloept (wallClock.value)) to RegisterGracePeriodeUtloept (
135
160
hendelseId = UUID .randomUUID(),
136
161
periodeId = periodeInfo.periodeId,
137
162
arbeidssoekerId = periodeInfo.arbeidsoekerId,
@@ -148,3 +173,15 @@ fun BekreftelseContext.oppdaterBekreftelser(bekreftelser: PawNonEmptyList<Bekref
148
173
oppdaterteBekreftelser to hendelser
149
174
}
150
175
176
+ fun Bekreftelse.setStatus (nyStatus : BekreftelseTilstandStatus ): Bekreftelse {
177
+ val siste = sisteTilstand()
178
+ Span .current().addEvent(
179
+ intern,
180
+ Attributes .of(
181
+ actionKey, bekreftelseSattStatusAction,
182
+ nyBekreftelseStatusKey, nyStatus::class .simpleName?.snakeCase() ? : " ukjent" ,
183
+ gjeldeneBekreftelseStatusKey, siste::class .simpleName?.snakeCase() ? : " ukjent"
184
+ )
185
+ )
186
+ return this + nyStatus
187
+ }
0 commit comments