Skip to content

Commit

Permalink
konsumentene håndterer tilleggsinfoSak hendelse
Browse files Browse the repository at this point in the history
  • Loading branch information
ebelegu committed Oct 1, 2024
1 parent a8b98b1 commit ff314ec
Show file tree
Hide file tree
Showing 19 changed files with 264 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.OppgaveUtgått
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.PåminnelseOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SakOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SoftDelete
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.TilleggsinformasjonSak
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.*
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.json.laxObjectMapper
import no.nav.arbeidsgiver.notifikasjon.nærmeste_leder.NarmesteLederLeesah
import no.nav.arbeidsgiver.notifikasjon.produsent.ProdusentModel
import no.nav.arbeidsgiver.notifikasjon.produsent.api.MutationTilleggsinformasjonSak
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.OffsetDateTime
Expand Down Expand Up @@ -753,6 +755,7 @@ class BrukerRepositoryImpl(
is HendelseModel.KalenderavtaleOpprettet -> oppdaterModellEtterKalenderavtaleOpprettet(hendelse)
is HendelseModel.KalenderavtaleOppdatert -> oppdaterModellEtterKalenderavtaleOppdatert(hendelse)
is NesteStegSak -> oppdaterModellEtterNesteStegSak(hendelse)
is TilleggsinformasjonSak -> oppdaterModellEtterTilleggsinformasjonSak(hendelse)
}
}

Expand Down Expand Up @@ -1118,6 +1121,21 @@ class BrukerRepositoryImpl(
}
}

private suspend fun oppdaterModellEtterTilleggsinformasjonSak ( tilleggsinformasjonSak: TilleggsinformasjonSak) {
database.transaction {
executeUpdate(
"""
update sak
set tilleggsinformasjon = ?
where id = ?
"""
){
nullableText(tilleggsinformasjonSak.tilleggsinformasjon)
uuid(tilleggsinformasjonSak.sakId)
}
}
}

private suspend fun oppdaterModellEtterNesteStegSak (nesteStegSak: NesteStegSak) {
database.transaction {
executeUpdate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.PåminnelseTidspu
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SakOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SmsVarselKontaktinfo
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SoftDelete
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.TilleggsinformasjonSak
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.Database
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.ParameterSetters
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.logger
Expand Down Expand Up @@ -478,6 +479,17 @@ class DataproduktModel(
}
}

is TilleggsinformasjonSak -> {
database.nonTransactionalExecuteUpdate("""
update sak
set tilleggsinformasjon = ?
where sak_id = ?
""".trimIndent()) {
nullableText(hendelse.tilleggsinformasjon)
uuid(hendelse.sakId)
}
}

is NesteStegSak -> {
database.nonTransactionalExecuteUpdate("""
update sak
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.PåminnelseOppret
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SakOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SmsVarselKontaktinfo
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SoftDelete
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.TilleggsinformasjonSak
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.Database
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.Transaction
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.json.laxObjectMapper
Expand Down Expand Up @@ -67,6 +68,7 @@ class EksternVarslingRepository(
is SakOpprettet -> Unit
is NyStatusSak -> Unit
is NesteStegSak -> Unit
is TilleggsinformasjonSak -> Unit
is FristUtsatt -> Unit
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,23 @@ object HendelseModel {
get() = oppgittTidspunkt ?: mottattTidspunkt
}

@JsonTypeName("TilleggsinformasjonSak")
data class TilleggsinformasjonSak(
override val hendelseId: UUID,
override val virksomhetsnummer: String,
override val produsentId: String,
override val kildeAppNavn: String,
override val sakId: UUID,

val merkelapp: String,
val grupperingsid: String,
val idempotenceKey: String?,
val tilleggsinformasjon: String?,
) : Hendelse(), Sak {
@JsonIgnore
override val aggregateId: UUID = sakId
}

@JsonTypeName("NesteStegSak")
data class NesteStegSak(
override val hendelseId: UUID,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.OppgaveUtgått
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.PåminnelseOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SakOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SoftDelete
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.TilleggsinformasjonSak
import no.nav.arbeidsgiver.notifikasjon.infrastruktur.Database
import java.time.OffsetDateTime
import java.util.*
Expand Down Expand Up @@ -164,4 +165,5 @@ val Hendelse.typeNavn: String
is KalenderavtaleOpprettet -> "KalenderavtaleOpprettet"
is KalenderavtaleOppdatert -> "KalenderavtaleOppdatert"
is NesteStegSak -> "NesteStegSak"
is TilleggsinformasjonSak -> "TillegsinformasjonSak"
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.OppgaveUtgått
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.PåminnelseOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SakOpprettet
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.SoftDelete
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseModel.TilleggsinformasjonSak
import no.nav.arbeidsgiver.notifikasjon.hendelse.HendelseProdusent

interface KafkaReaperService {
Expand All @@ -43,8 +44,10 @@ class KafkaReaperServiceImpl(
kafkaReaperModel.fjernRelasjon(relatertHendelseId)
}
}

is SakOpprettet,
is NesteStegSak,
is TilleggsinformasjonSak,
is NyStatusSak,
is SoftDelete,
is BeskjedOpprettet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ class ManueltVedlikeholdService(
is HendelseModel.BrukerKlikket,
is HendelseModel.FristUtsatt,
is HendelseModel.NesteStegSak,
is HendelseModel.TilleggsinformasjonSak,
is HendelseModel.SoftDelete -> Unit
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ interface ProdusentRepository {

suspend fun oppdaterModellEtterHendelse(hendelse: Hendelse, metadata: HendelseMetadata)
suspend fun notifikasjonOppdateringFinnes(id: UUID, idempotenceKey: String): Boolean
suspend fun nesteStegSakFinnes(id: UUID, idempotenceKey: String): Boolean
suspend fun sakOppdateringFinnes(id: UUID, idempotenceKey: String): Boolean
}

class ProdusentRepositoryImpl(
Expand Down Expand Up @@ -319,6 +319,7 @@ class ProdusentRepositoryImpl(
is KalenderavtaleOpprettet -> oppdaterModellEtterKalenderavtaleOpprettet(hendelse)
is KalenderavtaleOppdatert -> oppdaterModellEtterKalenderavtaleOppdatert(hendelse)
is NesteStegSak -> oppdaterModellEtterNesteStegSak(hendelse)
is HendelseModel.TilleggsinformasjonSak -> oppdaterModellEtterTillegsinformasjonSak(hendelse)
}
}

Expand Down Expand Up @@ -369,7 +370,7 @@ class ProdusentRepositoryImpl(
}
}

override suspend fun nesteStegSakFinnes(id: UUID, idempotenceKey: String): Boolean =
override suspend fun sakOppdateringFinnes(id: UUID, idempotenceKey: String): Boolean =
database.nonTransactionalExecuteQuery(
"""
select * from sak_oppdatering where sak_id = ? and idempotence_key = ?
Expand All @@ -380,7 +381,6 @@ class ProdusentRepositoryImpl(
}
) {}.isNotEmpty()


private fun Transaction.finnDbSakId(sakId: UUID): UUID? =
executeQuery(
"""
Expand Down Expand Up @@ -414,6 +414,37 @@ class ProdusentRepositoryImpl(
}
}

private suspend fun oppdaterModellEtterTillegsinformasjonSak(tilleggsinformasjonSak: HendelseModel.TilleggsinformasjonSak) {
database.transaction {
executeUpdate(
"""
update sak
set tilleggsinformasjon = ?
where id = ?
"""
) {
nullableText(tilleggsinformasjonSak.tilleggsinformasjon)
uuid(tilleggsinformasjonSak.sakId)
}

tilleggsinformasjonSak.idempotenceKey?.also {
executeUpdate(
"""
insert into sak_oppdatering(
hendelse_id, sak_id, idempotence_key
)
values (?, ?, ?)
on conflict(hendelse_id) do nothing
""".trimIndent()
) {
uuid(tilleggsinformasjonSak.hendelseId)
uuid(tilleggsinformasjonSak.sakId)
text(tilleggsinformasjonSak.idempotenceKey)
}
}
}
}

private suspend fun oppdaterModellEtterNesteStegSak(nesteStegSak: HendelseModel.NesteStegSak) {
database.transaction {
executeUpdate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ internal sealed class Error {
MutationHardDeleteNotifikasjon.HardDeleteNotifikasjonResultat,
MutationNyStatusSak.NyStatusSakResultat,
MutationNesteStegSak.NesteStegSakResultat,
MutationKalenderavtale.OppdaterKalenderavtaleResultat
MutationKalenderavtale.OppdaterKalenderavtaleResultat,
MutationTilleggsinformasjonSak.TilleggsinformasjonSakResultat


@JsonTypeName("UkjentProdusent")
data class UkjentProdusent(
Expand All @@ -56,7 +58,8 @@ internal sealed class Error {
MutationNySak.NySakResultat,
MutationNyStatusSak.NyStatusSakResultat,
MutationNesteStegSak.NesteStegSakResultat,
MutationKalenderavtale.OppdaterKalenderavtaleResultat
MutationKalenderavtale.OppdaterKalenderavtaleResultat,
MutationTilleggsinformasjonSak.TilleggsinformasjonSakResultat

@JsonTypeName("UgyldigMottaker")
data class UgyldigMottaker(
Expand All @@ -73,7 +76,8 @@ internal sealed class Error {
MutationNyStatusSak.NyStatusSakResultat,
MutationNesteStegSak.NesteStegSakResultat,
MutationOppgaveUtsettFrist.OppgaveUtsettFristResultat,
MutationKalenderavtale.OppdaterKalenderavtaleResultat
MutationKalenderavtale.OppdaterKalenderavtaleResultat,
MutationTilleggsinformasjonSak.TilleggsinformasjonSakResultat

@JsonTypeName("DuplikatEksternIdOgMerkelapp")
data class DuplikatEksternIdOgMerkelapp(
Expand Down Expand Up @@ -135,7 +139,8 @@ internal sealed class Error {
MutationHardDeleteSak.HardDeleteSakResultat,
MutationKalenderavtale.NyKalenderavtaleResultat,
QuerySak.HentSakResultat,
MutationNesteStegSak.NesteStegSakResultat
MutationNesteStegSak.NesteStegSakResultat,
MutationTilleggsinformasjonSak.TilleggsinformasjonSakResultat

@JsonTypeName("OppgavenErAlleredeUtfoert")
data class OppgavenErAlleredeUtfoert(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ internal class MutationNesteStegSak(
) { error -> return error }

nesteSteg.idempotencyKey?.let {
if (produsentRepository.nesteStegSakFinnes(sak.id, it)) {
if (produsentRepository.sakOppdateringFinnes(sak.id, it)) {
return NesteStegSakVellykket(sak.id)
}
}
Expand Down
Loading

0 comments on commit ff314ec

Please sign in to comment.