1
1
package no.nav.paw.arbeidssoekerregisteret.service
2
2
3
+ import io.micrometer.core.instrument.MeterRegistry
3
4
import no.nav.paw.arbeidssoekerregisteret.model.OppgaveMelding
4
5
import no.nav.paw.arbeidssoekerregisteret.model.VarselHendelse
5
6
import no.nav.paw.arbeidssoekerregisteret.model.VarselKilde
@@ -11,6 +12,8 @@ import no.nav.paw.arbeidssoekerregisteret.model.asUpdatePeriodeRow
11
12
import no.nav.paw.arbeidssoekerregisteret.model.asUpdateVarselRow
12
13
import no.nav.paw.arbeidssoekerregisteret.repository.PeriodeRepository
13
14
import no.nav.paw.arbeidssoekerregisteret.repository.VarselRepository
15
+ import no.nav.paw.arbeidssoekerregisteret.utils.bekreftelseHendelseCounter
16
+ import no.nav.paw.arbeidssoekerregisteret.utils.periodeCounter
14
17
import no.nav.paw.arbeidssokerregisteret.api.v1.Periode
15
18
import no.nav.paw.bekreftelse.internehendelser.BekreftelseHendelse
16
19
import no.nav.paw.bekreftelse.internehendelser.BekreftelseMeldingMottatt
@@ -21,6 +24,7 @@ import org.jetbrains.exposed.sql.transactions.transaction
21
24
import java.util.*
22
25
23
26
class VarselService (
27
+ private val meterRegistry : MeterRegistry ,
24
28
private val periodeRepository : PeriodeRepository ,
25
29
private val varselRepository : VarselRepository ,
26
30
private val varselMeldingBygger : VarselMeldingBygger
@@ -30,11 +34,13 @@ class VarselService(
30
34
fun mottaPeriode (periode : Periode ) = transaction {
31
35
val periodeRow = periodeRepository.findByPeriodeId(periode.id)
32
36
if (periodeRow != null ) {
33
- logger.warn(" Oppdaterer innslag for periode" )
37
+ logger.warn(" Oppdaterer innslag for periode {}" , periode.id)
38
+ meterRegistry.periodeCounter(" update" , periode)
34
39
val updatePeriodeRow = periode.asUpdatePeriodeRow()
35
40
periodeRepository.update(updatePeriodeRow)
36
41
} else {
37
- logger.debug(" Oppretter innslag for periode" )
42
+ logger.debug(" Oppretter innslag for periode {}" , periode.id)
43
+ meterRegistry.periodeCounter(" insert" , periode)
38
44
val insertPeriodeRow = periode.asInsertPeriodeRow()
39
45
periodeRepository.insert(insertPeriodeRow)
40
46
}
@@ -48,15 +54,18 @@ class VarselService(
48
54
val varselRow = varselRepository.findByVarselId(hendelse.bekreftelseId)
49
55
if (varselRow != null ) {
50
56
logger.warn(
51
- " Ignorerer bekreftelse- hendelse av type {} siden varsel allerede finnes" ,
57
+ " Ignorerer hendelse {} siden varsel allerede finnes" ,
52
58
hendelse.hendelseType
53
59
)
60
+ meterRegistry.bekreftelseHendelseCounter(" ignore" , hendelse)
54
61
emptyList()
55
62
} else {
56
63
logger.debug(
57
- " Bestiller og oppretter varsel basert på bekreftelse-hendelse av type {}" ,
58
- hendelse.hendelseType
64
+ " Bestiller og oppretter varsel for hendelse {} og periode {}" ,
65
+ hendelse.hendelseType,
66
+ hendelse.periodeId
59
67
)
68
+ meterRegistry.bekreftelseHendelseCounter(" insert" , hendelse)
60
69
val insertVarselRow = hendelse.asInsertVarselRow(
61
70
varselKilde = VarselKilde .BEKREFTELSE_TILGJENGELIG ,
62
71
varselType = VarselType .OPPGAVE ,
@@ -72,7 +81,12 @@ class VarselService(
72
81
)
73
82
}
74
83
} else {
75
- logger.warn(" Fant ingen aktiv periode for bekreftelse-hendelse av type {}" , hendelse.hendelseType)
84
+ logger.warn(
85
+ " Fant ingen aktiv periode for hendelse {} og periode {}" ,
86
+ hendelse.hendelseType,
87
+ hendelse.periodeId
88
+ )
89
+ meterRegistry.bekreftelseHendelseCounter(" fail" , hendelse)
76
90
emptyList()
77
91
}
78
92
}
@@ -81,32 +95,56 @@ class VarselService(
81
95
val varselRow = varselRepository.findByVarselId(hendelse.bekreftelseId)
82
96
if (varselRow != null ) {
83
97
logger.debug(
84
- " Avslutter og sletter varsel for varsel på grunn av bekreftelse- hendelse av type {}" ,
98
+ " Avslutter og sletter varsel for varsel for hendelse {}" ,
85
99
hendelse.hendelseType
86
100
)
101
+ meterRegistry.bekreftelseHendelseCounter(" delete" , hendelse)
87
102
varselRepository.deleteByVarselId(hendelse.bekreftelseId)
88
-
89
103
listOf (varselMeldingBygger.avsluttOppgave(hendelse.bekreftelseId))
90
104
} else {
91
- logger.warn(" Fant ingen varsel for bekreftelse-hendelse av type {}" , hendelse.hendelseType)
105
+ logger.warn(" Fant ingen varsel for hendelse {}" , hendelse.hendelseType)
106
+ meterRegistry.bekreftelseHendelseCounter(" fail" , hendelse)
92
107
emptyList()
93
108
}
94
109
}
95
110
96
111
is PeriodeAvsluttet -> {
97
112
logger.debug(
98
- " Avlutter og sletter alle varsler på grunn av bekreftelse-hendelse av type {}" ,
99
- hendelse.hendelseType
113
+ " Avlutter og sletter alle varsler for hendelse {} og periode {}" ,
114
+ hendelse.hendelseType,
115
+ hendelse.periodeId
100
116
)
117
+ val periodeRow = periodeRepository.findByPeriodeId(hendelse.periodeId)
118
+ if (periodeRow == null ) {
119
+ logger.warn(
120
+ " Fant ingen periode for hendelse {} og periode {}" ,
121
+ hendelse.hendelseType,
122
+ hendelse.periodeId
123
+ )
124
+ meterRegistry.bekreftelseHendelseCounter(" fail" , hendelse)
125
+ } else {
126
+ meterRegistry.bekreftelseHendelseCounter(" delete" , hendelse)
127
+ periodeRepository.deleteByPeriodeId(hendelse.periodeId)
128
+ }
129
+
101
130
val varselRows = varselRepository.findByPeriodeId(hendelse.periodeId)
102
- varselRepository.deleteByPeriodeId(hendelse.periodeId)
103
- periodeRepository.deleteByPeriodeId(hendelse.periodeId)
131
+ if (varselRows.isEmpty()) {
132
+ logger.warn(
133
+ " Fant ingen varsler for hendelse {} og periode {}" ,
134
+ hendelse.hendelseType,
135
+ hendelse.periodeId
136
+ )
137
+ emptyList()
138
+ } else {
139
+ varselRepository.deleteByPeriodeId(hendelse.periodeId)
140
+ varselRows.map { varselMeldingBygger.avsluttOppgave(it.varselId) }
141
+ }
104
142
105
- varselRows.map { varselMeldingBygger.avsluttOppgave(it.varselId) }
106
143
}
107
144
108
145
else -> {
109
- logger.debug(" Ignorerer bekreftelse-hendelse av type {}" , hendelse.hendelseType)
146
+ logger.debug(" Ignorerer hendelse {}" , hendelse.hendelseType)
147
+ meterRegistry.bekreftelseHendelseCounter(" ignore" , hendelse)
110
148
emptyList()
111
149
}
112
150
}
@@ -116,19 +154,26 @@ class VarselService(
116
154
val varselRow = varselRepository.findByVarselId(UUID .fromString(hendelse.varselId))
117
155
if (varselRow != null ) {
118
156
if (varselRow.hendelseTimestamp.isBefore(hendelse.tidspunkt)) {
119
- logger.debug(" Oppdaterer varsel basert på varsel-hendelse med status {}" , hendelse.status)
157
+ logger.debug(
158
+ " Oppdaterer varsel for hendelse {} med type {} og status {}" ,
159
+ VarselHendelse ::class .java.simpleName,
160
+ hendelse.varseltype,
161
+ hendelse.status
162
+ )
120
163
val updateVarselRow = hendelse.asUpdateVarselRow()
121
164
varselRepository.update(updateVarselRow)
122
165
} else {
123
166
logger.warn(
124
- " Ignorerer varsel-hendelse med status {} siden lagret varsel {} er nyere enn hendelse {}" ,
167
+ " Ignorerer hendelse {} med type {} og status {} siden lagret varsel {} er nyere enn hendelse {}" ,
168
+ VarselHendelse ::class .java.simpleName,
169
+ hendelse.varseltype,
125
170
hendelse.status,
126
171
varselRow.hendelseTimestamp,
127
172
hendelse.tidspunkt
128
173
)
129
174
}
130
175
} else {
131
- logger.warn(" Fant ikke lagret varsel for varsel- hendelse" )
176
+ logger.warn(" Fant ikke lagret varsel for hendelse {} " , VarselHendelse :: class .java.simpleName )
132
177
}
133
178
}
134
179
}
0 commit comments