Skip to content

Commit

Permalink
La til hendelser for id håndtering
Browse files Browse the repository at this point in the history
  • Loading branch information
nilsmsa committed Nov 5, 2024
1 parent 8f2748a commit 50208c5
Show file tree
Hide file tree
Showing 9 changed files with 114 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ fun genererNyInternTilstandOgNyeApiTilstander(
is OpplysningerOmArbeidssoekerMottatt -> opplysningerOmArbeidssoekerMottatt(hendelse)
is Avvist -> avvist(hendelse)
is AvvistStoppAvPeriode -> ingenEndringEllerUtgaaendeMeldinger()
is IdentitetsnummerOpphoert -> ingenEndringEllerUtgaaendeMeldinger()
is IdentitetsnummerSammenslaatt -> ingenEndringEllerUtgaaendeMeldinger()
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions apps/kafka-key-maintenance/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ jib {
to.image = "${image ?: project.name}:${project.version}"
container {
jvmFlags = listOf("-XX:ActiveProcessorCount=4", "-XX:+UseZGC", "-XX:+ZGenerational")
environment = mapOf(
"IMAGE_WITH_VERSION" to "${image ?: project.name}:${project.version}"
)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package no.nav.paw.kafkakeymaintenance

import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Bruker
import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.BrukerType
import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Metadata
import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.TidspunktFraKilde
import java.time.Instant

private val systemId = System.getenv("IMAGE_WITH_VERSION")?: "UNSPECIFIED"

fun metadata(
kilde: String,
tidspunkt: Instant = Instant.now(),
tidspunktFraKilde: TidspunktFraKilde
): Metadata {

return Metadata(
tidspunkt = tidspunkt,
utfoertAv = Bruker(
type = BrukerType.SYSTEM,
id = systemId
),
kilde = kilde,
aarsak = "Id oppdatering",
tidspunktFraKilde = tidspunktFraKilde
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package no.nav.paw.kafkakeymaintenance

import kotlinx.coroutines.runBlocking
import no.nav.paw.arbeidssokerregisteret.intern.v1.Hendelse
import no.nav.paw.arbeidssokerregisteret.intern.v1.IdentitetsnummerOpphoert
import no.nav.paw.arbeidssokerregisteret.intern.v1.IdentitetsnummerSammenslaatt
import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Metadata
import no.nav.paw.kafkakeygenerator.client.KafkaKeysClient
import no.nav.paw.kafkakeygenerator.client.LokaleAlias
import no.nav.paw.kafkakeymaintenance.functions.genererIdOppdatering
Expand All @@ -10,13 +14,13 @@ import no.nav.paw.kafkakeymaintenance.functions.hentPerioder
import no.nav.paw.kafkakeymaintenance.kafka.Topic
import no.nav.paw.kafkakeymaintenance.kafka.TransactionContext
import no.nav.paw.kafkakeymaintenance.kafka.updateHwm
import no.nav.paw.kafkakeymaintenance.vo.IdOppdatering
import no.nav.paw.kafkakeymaintenance.vo.avviksMelding
import no.nav.paw.kafkakeymaintenance.vo.*
import no.nav.person.pdl.aktor.v2.Aktor
import org.apache.kafka.clients.consumer.ConsumerRecord
import org.jetbrains.exposed.sql.Transaction
import org.jetbrains.exposed.sql.transactions.transaction
import java.time.Instant
import java.util.*

const val ANTALL_PARTISJONER = 6

Expand Down Expand Up @@ -48,3 +52,45 @@ fun process(
null
}
}

fun genererHendelser(metadata: Metadata, idOppdatering: IdOppdatering): List<Hendelse> {
return when (idOppdatering) {
is AutomatiskIdOppdatering -> genererHendelse(metadata, idOppdatering)
is ManuellIdOppdatering -> TODO()
}
}

fun genererHendelse(metadata: Metadata, idOppdatering: AutomatiskIdOppdatering): List<Hendelse> {
val identitetsnummerOpphoert = idOppdatering
.frieIdentiteter
.groupBy { it.arbeidsoekerId }
.map { (arbeidsoekerId, alias) ->
val identiteter = alias.map { it.identitetsnummer }
IdentitetsnummerOpphoert(
id = arbeidsoekerId,
hendelseId = UUID.randomUUID(),
identitetsnummer = identiteter.first(),
metadata = metadata,
alleIdentitetsnummer = identiteter
)
}
val identitetsnummerSammenslaatt = idOppdatering.oppdatertData?.let { genererHendelse(metadata, it) } ?: emptyList()
TODO()
}

fun genererHendelse(metadata: Metadata, idMap: IdMap): List<IdentitetsnummerSammenslaatt> =
idMap.identiteter
.filter { it.arbeidsoekerId != idMap.arbeidsoekerId }
.groupBy { it.arbeidsoekerId }
.map { (arbeidsoekerId, alias) ->
val identiteter = alias.map { it.identitetsnummer }
IdentitetsnummerSammenslaatt(
id = arbeidsoekerId,
hendelseId = UUID.randomUUID(),
identitetsnummer = identiteter.first(),
metadata = metadata,
alleIdentitetsnummer = identiteter,
flyttetTilArbeidssoekerId = idMap.arbeidsoekerId
)
}

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package no.nav.paw.kafkakeymaintenance.vo
import no.nav.paw.kafkakeygenerator.client.Alias
import no.nav.paw.kafkakeymaintenance.perioder.PeriodeRad

interface IdOppdatering {}
sealed interface IdOppdatering {}
data class ManuellIdOppdatering(
val gjeldeneIdentitetsnummer: String?,
val pdlIdentitetsnummer: List<String>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ const val avsluttetHendelseType = "intern.v1.avsluttet"
const val avvistHendelseType = "intern.v1.avvist"
const val avvistStoppAvPeriodeHendelseType = "intent.v1.avvist_stopp_av_periode"
const val opplysningerOmArbeidssoekerHendelseType = "intern.v1.opplysninger_om_arbeidssoeker"
const val identitetsnummerOpphoertHendelseType = "intern.v1.identitetsnummer_opphoert"
const val identitetsnummerSammenslaattHendelseType = "intern.v1.identitetsnummer_sammenslaatt"

sealed interface Hendelse : HarIdentitetsnummer, HarMetadata {
val id: Long
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,5 +78,7 @@ fun eventTypeToClass(type: String?): KClass<out Hendelse> =
avvistHendelseType -> Avvist::class
avvistStoppAvPeriodeHendelseType -> AvvistStoppAvPeriode::class
opplysningerOmArbeidssoekerHendelseType -> OpplysningerOmArbeidssoekerMottatt::class
identitetsnummerOpphoertHendelseType -> IdentitetsnummerOpphoert::class
identitetsnummerSammenslaattHendelseType -> IdentitetsnummerSammenslaatt::class
else -> throw IllegalArgumentException("Ukjent hendelse type: '$type'")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package no.nav.paw.arbeidssokerregisteret.intern.v1

import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Metadata
import java.util.*

data class IdentitetsnummerOpphoert(
override val id: Long,
override val hendelseId: UUID,
override val identitetsnummer: String,
override val metadata: Metadata,
val alleIdentitetsnummer: List<String>
): Hendelse {
override val hendelseType: String = identitetsnummerOpphoertHendelseType
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package no.nav.paw.arbeidssokerregisteret.intern.v1

import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Metadata
import java.util.*

data class IdentitetsnummerSammenslaatt(
override val id: Long,
override val hendelseId: UUID,
override val identitetsnummer: String,
override val metadata: Metadata,
val alleIdentitetsnummer: List<String>,
val flyttetTilArbeidssoekerId: Long
): Hendelse {
override val hendelseType: String = identitetsnummerSammenslaattHendelseType
}

0 comments on commit 50208c5

Please sign in to comment.