Skip to content

Commit 9d4a028

Browse files
committed
La til hendelsetidspunkt i interne hendelser
1 parent 77481ad commit 9d4a028

File tree

20 files changed

+117
-22
lines changed

20 files changed

+117
-22
lines changed

Diff for: apps/bekreftelse-api/src/test/kotlin/no/nav/paw/bekreftelse/api/TestDataGenerator.kt

+11-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,17 @@ class TestDataGenerator {
2323
arbeidsoekerId: Long = Random().nextLong(),
2424
bekreftelseId: UUID = UUID.randomUUID(),
2525
gjelderFra: Instant = Instant.now(),
26-
gjelderTil: Instant = Instant.now()
27-
) = BekreftelseTilgjengelig(hendelseId, periodeId, arbeidsoekerId, bekreftelseId, gjelderFra, gjelderTil)
26+
gjelderTil: Instant = Instant.now(),
27+
hendelseTidspunkt: Instant = Instant.now()
28+
) = BekreftelseTilgjengelig(
29+
hendelseId = hendelseId,
30+
periodeId = periodeId,
31+
arbeidssoekerId = arbeidsoekerId,
32+
hendelseTidspunkt = hendelseTidspunkt,
33+
bekreftelseId = bekreftelseId,
34+
gjelderFra = gjelderFra,
35+
gjelderTil = gjelderTil
36+
)
2837

2938
fun nyBekreftelseRequest(
3039
identitetsnummer: String? = null,
+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
apiVersion: nais.io/v1alpha1
2+
kind: Application
3+
metadata:
4+
name: paw-arbeidssoekerregisteret-bekreftelse-min-side-varsler
5+
namespace: paw
6+
labels:
7+
team: paw
8+
spec:
9+
azure:
10+
application:
11+
enabled: true
12+
image: {{ image }}
13+
port: 8080
14+
replicas:
15+
min: 1
16+
max: 1
17+
env:
18+
- name: KAFKA_KEYS_SCOPE
19+
value: api://dev-gcp.paw.paw-kafka-key-generator/.default
20+
liveness:
21+
path: /internal/isAlive
22+
initialDelay: 10
23+
readiness:
24+
path: /internal/isReady
25+
initialDelay: 10
26+
prometheus:
27+
enabled: true
28+
path: /internal/metrics
29+
observability:
30+
autoInstrumentation:
31+
enabled: true
32+
runtime: java
33+
kafka:
34+
pool: {{ kafka }}
35+
streams: true
36+
resources:
37+
limits:
38+
memory: 512Mi
39+
requests:
40+
memory: 256Mi
41+
cpu: 25m
42+
accessPolicy:
43+
outbound:
44+
rules:
45+
- application: paw-kafka-key-generator

Diff for: apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekreftelsetjeneste/BekreftelseMeldingTopology.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import org.apache.kafka.streams.kstream.Produced
1717
import org.apache.kafka.streams.processor.PunctuationType
1818
import org.apache.kafka.streams.processor.api.Record
1919
import org.slf4j.LoggerFactory
20+
import java.time.Instant
2021
import java.util.*
2122

2223
context(ApplicationConfiguration, ApplicationContext)
@@ -63,14 +64,16 @@ fun behandleGyldigSvar(arbeidssoekerId: Long, record: Record<Long, no.nav.paw.be
6364
BaOmAaAvsluttePeriode(
6465
hendelseId = UUID.randomUUID(),
6566
periodeId = record.value().periodeId,
66-
arbeidssoekerId = arbeidssoekerId
67+
arbeidssoekerId = arbeidssoekerId,
68+
hendelseTidspunkt = Instant.now()
6769
)
6870
} else null
6971
val meldingMottatt = BekreftelseMeldingMottatt(
7072
hendelseId = UUID.randomUUID(),
7173
periodeId = record.value().periodeId,
7274
arbeidssoekerId = arbeidssoekerId,
73-
bekreftelseId = bekreftelse.bekreftelseId
75+
bekreftelseId = bekreftelse.bekreftelseId,
76+
hendelseTidspunkt = Instant.now()
7477
)
7578
return listOfNotNull(meldingMottatt, baOmAaAvslutte) to oppdatertBekreftelse
7679
}

Diff for: apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekreftelsetjeneste/BekreftelsePunctuator.kt

+11-5
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ private fun InternTilstand.handleUpdateBekreftelser(
8484
arbeidssoekerId = periode.arbeidsoekerId,
8585
bekreftelseId = bekreftelse.bekreftelseId,
8686
gjelderFra = bekreftelse.gjelderFra,
87-
gjelderTil = bekreftelse.gjelderTil
87+
gjelderTil = bekreftelse.gjelderTil,
88+
hendelseTidspunkt = Instant.now()
8889
)
8990
updatedBekreftelse to hendelse
9091
}
@@ -95,7 +96,9 @@ private fun InternTilstand.handleUpdateBekreftelser(
9596
hendelseId = UUID.randomUUID(),
9697
periodeId = periode.periodeId,
9798
arbeidssoekerId = periode.arbeidsoekerId,
98-
bekreftelseId = bekreftelse.bekreftelseId
99+
bekreftelseId = bekreftelse.bekreftelseId,
100+
hendelseTidspunkt = Instant.now(),
101+
leveringsfrist = bekreftelse.gjelderTil
99102
)
100103
updatedBekreftelse to hendelse
101104
}
@@ -107,7 +110,8 @@ private fun InternTilstand.handleUpdateBekreftelser(
107110
periodeId = periode.periodeId,
108111
arbeidssoekerId = periode.arbeidsoekerId,
109112
bekreftelseId = bekreftelse.bekreftelseId,
110-
gjenstaandeTid = gjenstaendeGracePeriode(timestamp, bekreftelse.gjelderTil)
113+
gjenstaandeTid = gjenstaendeGracePeriode(timestamp, bekreftelse.gjelderTil),
114+
hendelseTidspunkt = Instant.now()
111115
)
112116
updatedBekreftelse to hendelse
113117
}
@@ -118,7 +122,8 @@ private fun InternTilstand.handleUpdateBekreftelser(
118122
hendelseId = UUID.randomUUID(),
119123
periodeId = periode.periodeId,
120124
arbeidssoekerId = periode.arbeidsoekerId,
121-
bekreftelseId = bekreftelse.bekreftelseId
125+
bekreftelseId = bekreftelse.bekreftelseId,
126+
hendelseTidspunkt = Instant.now()
122127
)
123128
updatedBekreftelse to hendelse
124129
}
@@ -140,7 +145,8 @@ private fun InternTilstand.createNewBekreftelseTilgjengelig(newBekreftelse: Bekr
140145
arbeidssoekerId = periode.arbeidsoekerId,
141146
bekreftelseId = newBekreftelse.bekreftelseId,
142147
gjelderFra = newBekreftelse.gjelderFra,
143-
gjelderTil = newBekreftelse.gjelderTil
148+
gjelderTil = newBekreftelse.gjelderTil,
149+
hendelseTidspunkt = Instant.now()
144150
)
145151

146152
private operator fun <K, V> KeyValue<K, V>.component1(): K = key

Diff for: apps/bekreftelse-tjeneste/src/main/kotlin/no/nav/paw/bekreftelsetjeneste/PeriodeTopology.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.apache.kafka.common.serialization.Serdes
1111
import org.apache.kafka.streams.StreamsBuilder
1212
import org.apache.kafka.streams.kstream.Produced
1313
import org.apache.kafka.streams.state.KeyValueStore
14+
import java.time.Instant
1415
import java.util.*
1516

1617

@@ -40,9 +41,10 @@ fun StreamsBuilder.processPeriodeTopic() {
4041
forward(
4142
record.withValue(
4243
PeriodeAvsluttet(
43-
UUID.randomUUID(),
44-
action.periode.id,
45-
action.arbeidsoekerId
44+
hendelseId = UUID.randomUUID(),
45+
periodeId = action.periode.id,
46+
arbeidssoekerId = action.arbeidsoekerId,
47+
hendelseTidspunkt = Instant.now()
4648
) as BekreftelseHendelse
4749
)
4850
)

Diff for: apps/utgang-formidlingsgruppe/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/app/Topology.kt

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ fun StreamsBuilder.appTopology(
2525
): Topology {
2626
val arenaFormidlingsgruppeSerde = ArenaFormidlingsgruppeSerde()
2727
stream<Long, Periode>(periodeTopic)
28+
2829
.lagreEllerSlettPeriode(
2930
stateStoreName = stateStoreName,
3031
prometheusMeterRegistry = prometheusRegistry,

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/BaOmAaAvsluttePeriode.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
const val beOmAaAvsluttePeriodeHendelsesType = "bekreftelse.be_om_aa_avslutte_periode"
@@ -8,6 +9,7 @@ class BaOmAaAvsluttePeriode(
89
override val hendelseId: UUID,
910
override val periodeId: UUID,
1011
override val arbeidssoekerId: Long,
12+
override val hendelseTidspunkt: Instant,
1113
) : BekreftelseHendelse {
1214
override val hendelseType: String = beOmAaAvsluttePeriodeHendelsesType
1315
}

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/BekreftelseHendelse.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
sealed interface BekreftelseHendelse {
7+
val hendelseTidspunkt: Instant
68
val hendelseType: String
79
val hendelseId: UUID
810
val periodeId: UUID

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/BekreftelseHendelseSerde.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ object BekreftelseHendelseDeserializer: Deserializer<BekreftelseHendelse> {
3838
bekreftelseTilgjengeligHendelseType -> objectMapper.readValue<BekreftelseTilgjengelig>(node.traverse())
3939
meldingMottattHendelseType -> objectMapper.readValue<BekreftelseMeldingMottatt>(node.traverse())
4040
periodeAvsluttetHendelsesType -> objectMapper.readValue<PeriodeAvsluttet>(node.traverse())
41-
registerGracePeriodeGjenstaandeTid -> objectMapper.readValue<RegisterGracePeriodeGjendstaaendeTid>(node.traverse())
41+
registerGracePeriodeGjenstaaendeTid -> objectMapper.readValue<RegisterGracePeriodeGjendstaaendeTid>(node.traverse())
4242
else -> throw IllegalArgumentException("Ukjent hendelseType: $hendelseType")
4343
}
4444
}

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/BekreftelseMeldingMottatt.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
const val meldingMottattHendelseType = "bekreftelse.melding_mottatt"
@@ -8,6 +9,7 @@ data class BekreftelseMeldingMottatt(
89
override val hendelseId: UUID,
910
override val periodeId: UUID,
1011
override val arbeidssoekerId: Long,
12+
override val hendelseTidspunkt: Instant,
1113
val bekreftelseId: UUID
1214
) : BekreftelseHendelse {
1315
override val hendelseType: String = meldingMottattHendelseType

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/BekreftelseTilgjengelig.kt

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ data class BekreftelseTilgjengelig (
99
override val hendelseId: UUID,
1010
override val periodeId: UUID,
1111
override val arbeidssoekerId: Long,
12+
override val hendelseTidspunkt: Instant,
1213
val bekreftelseId: UUID,
1314
val gjelderFra: Instant,
1415
val gjelderTil: Instant

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/EksternGracePeriodeUtloept.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
const val eksternGracePeriodeUtloeptHendelseType = "bekreftelse.ekstern_grace_periode_utloept"
@@ -8,6 +9,7 @@ data class EksternGracePeriodeUtloept(
89
override val hendelseId: UUID,
910
override val periodeId: UUID,
1011
override val arbeidssoekerId: Long,
12+
override val hendelseTidspunkt: Instant,
1113
val ansvarligNamespace: String,
1214
val ansvarligId: String
1315
) : BekreftelseHendelse {
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
const val leveringsfristUtloeptHendelseType = "bekreftelse.leveringsfrist_utloept"
@@ -8,7 +9,9 @@ data class LeveringsfristUtloept(
89
override val hendelseId: UUID,
910
override val periodeId: UUID,
1011
override val arbeidssoekerId: Long,
11-
val bekreftelseId: UUID
12+
override val hendelseTidspunkt: Instant,
13+
val bekreftelseId: UUID,
14+
val leveringsfrist: Instant
1215
) : BekreftelseHendelse {
1316
override val hendelseType: String = leveringsfristUtloeptHendelseType
1417
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56

@@ -8,7 +9,8 @@ const val periodeAvsluttetHendelsesType = "bekreftelse.periode_avsluttet"
89
data class PeriodeAvsluttet(
910
override val hendelseId: UUID,
1011
override val periodeId: UUID,
11-
override val arbeidssoekerId: Long
12-
) : BekreftelseHendelse {
12+
override val arbeidssoekerId: Long,
13+
override val hendelseTidspunkt: Instant
14+
) : BekreftelseHendelse {
1315
override val hendelseType: String = periodeAvsluttetHendelsesType
1416
}
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

33
import java.time.Duration
4+
import java.time.Instant
45
import java.util.*
56

6-
const val registerGracePeriodeGjenstaandeTid = "bekreftelse.register_grace_periode_gjenstaande_tid"
7+
const val registerGracePeriodeGjenstaaendeTid = "bekreftelse.register_grace_periode_gjenstaaende_tid"
78

89
data class RegisterGracePeriodeGjendstaaendeTid(
910
override val hendelseId: UUID,
1011
override val periodeId: UUID,
1112
override val arbeidssoekerId: Long,
13+
override val hendelseTidspunkt: Instant,
1214
val bekreftelseId: UUID,
1315
val gjenstaandeTid: Duration
1416
) : BekreftelseHendelse {
15-
override val hendelseType: String = registerGracePeriodeGjenstaandeTid
17+
override val hendelseType: String = registerGracePeriodeGjenstaaendeTid
1618
}

Diff for: domain/bekreftelse-interne-hendelser/src/main/kotlin/no/nav/paw/bekreftelse/internehendelser/RegisterGracePeriodeUtloept.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.paw.bekreftelse.internehendelser
22

3+
import java.time.Instant
34
import java.util.*
45

56
const val registerGracePeriodeUtloeptHendelseType = "bekreftelse.register_grace_periode_utloept"
@@ -8,6 +9,7 @@ data class RegisterGracePeriodeUtloept(
89
override val hendelseId: UUID,
910
override val periodeId: UUID,
1011
override val arbeidssoekerId: Long,
12+
override val hendelseTidspunkt: Instant,
1113
val bekreftelseId: UUID
1214
) : BekreftelseHendelse {
1315
override val hendelseType: String = registerGracePeriodeUtloeptHendelseType

Diff for: domain/bekreftelse-interne-hendelser/src/test/kotlin/no/nav/paw/bekreftelse/internehendelser/SerdeTest.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package no.nav.paw.bekreftelse.internehendelser
22

33
import io.kotest.core.spec.style.FreeSpec
44
import io.kotest.matchers.shouldBe
5+
import java.time.Instant
56
import java.util.*
67

78
class SerdeTest : FreeSpec({
@@ -11,7 +12,9 @@ class SerdeTest : FreeSpec({
1112
hendelseId = UUID.randomUUID(),
1213
periodeId = UUID.randomUUID(),
1314
bekreftelseId = UUID.randomUUID(),
14-
arbeidssoekerId = 1234567890L
15+
arbeidssoekerId = 1234567890L,
16+
hendelseTidspunkt = Instant.now(),
17+
leveringsfrist = Instant.now()
1518
)
1619
val resultat = BekreftelseHendelseSerializer.serialize("", hendelse)
1720
.let { serialized ->
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
package no.nav.paw.arbeidssoekerregisteret.testdata.bekreftelse
22

33
import no.nav.paw.bekreftelse.internehendelser.BekreftelseMeldingMottatt
4+
import java.time.Instant
45
import java.util.*
56

67
fun bekreftelseMottatt(
78
bekreftelseId: UUID = UUID.randomUUID(),
89
periodeId: UUID = UUID.randomUUID(),
910
hendelseId: UUID = UUID.randomUUID(),
1011
arbeidssoekerId: Long = 1L,
12+
hendelseTidspunkt: Instant = Instant.now()
1113
) = BekreftelseMeldingMottatt(
1214
bekreftelseId = bekreftelseId,
1315
periodeId = periodeId,
1416
hendelseId = hendelseId,
15-
arbeidssoekerId = arbeidssoekerId
17+
arbeidssoekerId = arbeidssoekerId,
18+
hendelseTidspunkt = hendelseTidspunkt
1619
)

Diff for: test/test-data-lib/src/main/kotlin/no/nav/paw/arbeidssoekerregisteret/testdata/bekreftelse/BekreftelseTilgjengeligGenerator.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ fun bekreftelseTilgjengelig(
1212
hendelseId: UUID = UUID.randomUUID(),
1313
arbeidssoekerId: Long = 1L,
1414
gjelderFra: Instant = Instant.now(),
15-
gjelderTil: Instant = gjelderFra + Duration.ofDays(14)
15+
gjelderTil: Instant = gjelderFra + Duration.ofDays(14),
16+
hendelseTidspunkt: Instant = Instant.now()
1617
) = BekreftelseTilgjengelig(
1718
bekreftelseId = bekreftelseId,
1819
periodeId = periodeId,
1920
hendelseId = hendelseId,
2021
arbeidssoekerId = arbeidssoekerId,
2122
gjelderFra = gjelderFra,
2223
gjelderTil = gjelderTil,
24+
hendelseTidspunkt = hendelseTidspunkt
2325
)
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package no.nav.paw.arbeidssoekerregisteret.testdata.bekreftelse
22

33
import no.nav.paw.bekreftelse.internehendelser.PeriodeAvsluttet
4+
import java.time.Instant
45
import java.util.*
56

67
fun periodeAvsluttet(
78
hendelseId: UUID = UUID.randomUUID(),
89
periodeId: UUID = UUID.randomUUID(),
9-
arbeidssøkerId: Long = 1L
10+
arbeidssøkerId: Long = 1L,
11+
hendelseTidspunkt: Instant = Instant.now()
1012
) = PeriodeAvsluttet(
1113
hendelseId = hendelseId,
1214
periodeId = periodeId,
1315
arbeidssoekerId = arbeidssøkerId,
16+
hendelseTidspunkt = hendelseTidspunkt
1417
)

0 commit comments

Comments
 (0)