Skip to content

Commit

Permalink
La inn egen hendelse for de tilfelle hvor automatisk id merge ikke er…
Browse files Browse the repository at this point in the history
… mulig
  • Loading branch information
nilsmsa committed Nov 27, 2024
1 parent d393b42 commit 58232e0
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ fun genererNyInternTilstandOgNyeApiTilstander(
is IdentitetsnummerSammenslaatt -> identitetsnummerSammenslaattAvsluttPeriode(hendelse)
is IdentitetsnummerOpphoert -> ingenEndringEllerUtgaaendeMeldinger()
is ArbeidssoekerIdFlettetInn -> ingenEndringEllerUtgaaendeMeldinger()
is AutomatiskIdMergeIkkeMulig -> ingenEndringEllerUtgaaendeMeldinger()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package no.nav.paw.kafkakeymaintenance.pdlprocessor.functions

import no.nav.paw.arbeidssokerregisteret.intern.v1.ArbeidssoekerIdFlettetInn
import no.nav.paw.arbeidssokerregisteret.intern.v1.Hendelse
import no.nav.paw.arbeidssokerregisteret.intern.v1.IdentitetsnummerSammenslaatt
import no.nav.paw.arbeidssokerregisteret.intern.v1.Kilde
import no.nav.paw.arbeidssokerregisteret.intern.v1.*
import no.nav.paw.arbeidssokerregisteret.intern.v1.vo.Metadata
import no.nav.paw.kafkakeymaintenance.perioder.PeriodeRad
import no.nav.paw.kafkakeymaintenance.vo.AutomatiskIdOppdatering
import no.nav.paw.kafkakeymaintenance.vo.IdMap
import no.nav.paw.kafkakeymaintenance.vo.IdOppdatering
Expand Down Expand Up @@ -58,4 +56,36 @@ fun genererHendelse(metadata: Metadata, idMap: IdMap): List<HendelseRecord<Hende
HendelseRecord(alias.first().recordKey, hendelse),
HendelseRecord(idMap.recordKey, infoHendelse)
)
}
}
fun genererHendelse(metadata: Metadata, manuellIdOppdatering: ManuellIdOppdatering): List<Hendelse> {
return manuellIdOppdatering.lokaleAlias.map { alias ->
AutomatiskIdMergeIkkeMulig(
identitetsnummer = alias.identitetsnummer,
id = alias.arbeidsoekerId,
hendelseId = UUID.randomUUID(),
metadata = metadata,
gjeldeneIdentitetsnummer = manuellIdOppdatering.gjeldeneIdentitetsnummer,
pdlIdentitetsnummer = manuellIdOppdatering.pdlIdentitetsnummer,
lokaleAlias = manuellIdOppdatering.lokaleAlias.map(::toDomeneAlias),
perioder = manuellIdOppdatering.perioder.map(::tilDomenePerioderad)
)
}
}

fun tilDomenePerioderad(periodeRad: PeriodeRad): no.nav.paw.arbeidssokerregisteret.intern.v1.PeriodeRad {
return no.nav.paw.arbeidssokerregisteret.intern.v1.PeriodeRad(
periodeId = periodeRad.periodeId,
identitetsnummer = periodeRad.identitetsnummer,
fra = periodeRad.fra,
til = periodeRad.til
)
}

fun toDomeneAlias(alias: no.nav.paw.kafkakeygenerator.client.Alias): Alias {
return Alias(
identitetsnummer = alias.identitetsnummer,
arbeidsoekerId = alias.arbeidsoekerId,
recordKey = alias.recordKey,
partition = alias.partition
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package no.nav.paw.arbeidssokerregisteret.intern.v1

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

class AutomatiskIdMergeIkkeMulig(
override val identitetsnummer: String,
override val id: Long,
override val hendelseId: UUID,
override val metadata: Metadata,
val gjeldeneIdentitetsnummer: String?,
val pdlIdentitetsnummer: List<String>,
val lokaleAlias: List<Alias>,
val perioder: List<PeriodeRad>
) : Hendelse {
override val hendelseType: String = automatiskIdMergeIkkeMulig
}

data class Alias(
val identitetsnummer: String,
val arbeidsoekerId: Long,
val recordKey: Long,
val partition: Int,
)

data class PeriodeRad(
val periodeId: UUID,
val identitetsnummer: String,
val fra: Instant,
val til: Instant?
) {
val erAktiv: Boolean = til == null
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const val opplysningerOmArbeidssoekerHendelseType = "intern.v1.opplysninger_om_a
const val identitetsnummerOpphoertHendelseType = "intern.v1.identitetsnummer_opphoert"
const val identitetsnummerSammenslaattHendelseType = "intern.v1.identitetsnummer_sammenslaatt"
const val arbeidssoekerIdFlettetInn = "intern.v1.arbeidssoeker_id_flettet_inn"
const val automatiskIdMergeIkkeMulig = "intern.v1.automatisk_id_merge_ikke_mulig"

sealed interface Hendelse : HarIdentitetsnummer, HarMetadata {
val id: Long
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,6 @@ fun eventTypeToClass(type: String?): KClass<out Hendelse> =
identitetsnummerOpphoertHendelseType -> IdentitetsnummerOpphoert::class
identitetsnummerSammenslaattHendelseType -> IdentitetsnummerSammenslaatt::class
arbeidssoekerIdFlettetInn -> ArbeidssoekerIdFlettetInn::class
automatiskIdMergeIkkeMulig -> AutomatiskIdMergeIkkeMulig::class
else -> throw IllegalArgumentException("Ukjent hendelse type: '$type'")
}

0 comments on commit 58232e0

Please sign in to comment.