From 6e27b7a0974102bd59c1cfc68311945bc30a08ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geir=20Andr=C3=A9=20Lund?= Date: Fri, 26 Apr 2024 10:13:13 +0200 Subject: [PATCH] Steg 2.2 - Fjerne minstinntekt og eksisterende saker fra mediator og mer fra modellen. https://favro.com/organization/98c34fb974ce445eac854de0/696529a0ddfa866861cfa6b6?card=NAV-20748 --- .../dagpenger/mottak/ApplicationBuilder.kt | 11 -- .../kotlin/no/nav/dagpenger/mottak/Config.kt | 6 - .../dagpenger/mottak/InnsendingMediator.kt | 14 -- .../behov/saksbehandling/arena/Arena.kt | 13 -- .../arena/ArenaBehovL\303\270ser.kt" | 47 ----- .../MinsteinntektVurderingL\303\270ser.kt" | 146 -------------- .../behov/vilk\303\245rtester/RegelApi.kt" | 71 ------- ...insteinntektVurderingPostgresRepository.kt | 114 ----------- .../tjenester/EksisterendeSakerMottak.kt | 54 ------ .../tjenester/MinsteinntektVurderingMottak.kt | 49 ----- .../mottak/tjenester/MottakMediator.kt | 2 - .../nav/dagpenger/mottak/BehovMediatorTest.kt | 9 +- .../arena/ArenaBehovL\303\270serTest.kt" | 28 --- .../MinsteinntektSerialiseringTest.kt" | 14 -- ...MinsteinntektVurderingL\303\270serTest.kt" | 180 ------------------ .../dagpenger/mottak/e2e/MediatorE2ETest.kt | 40 ---- .../no/nav/dagpenger/mottak/Aktivitetslogg.kt | 4 + .../no/nav/dagpenger/mottak/Innsending.kt | 52 ----- .../mottak/InnsendingTilstandType.kt | 2 - .../mottak/meldinger/Eksisterendesaker.kt | 14 -- .../MinsteinntektArbeidsinntektVurdert.kt | 14 -- .../mottak/e2e/AbstractEndeTilEndeTest.kt | 24 --- 22 files changed, 8 insertions(+), 900 deletions(-) delete mode 100644 "mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270ser.kt" delete mode 100644 "mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/RegelApi.kt" delete mode 100644 mediator/src/main/kotlin/no/nav/dagpenger/mottak/db/MinsteinntektVurderingPostgresRepository.kt delete mode 100644 mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/EksisterendeSakerMottak.kt delete mode 100644 mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MinsteinntektVurderingMottak.kt delete mode 100644 "mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektSerialiseringTest.kt" delete mode 100644 "mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270serTest.kt" delete mode 100644 modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/Eksisterendesaker.kt delete mode 100644 modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/MinsteinntektArbeidsinntektVurdert.kt diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/ApplicationBuilder.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/ApplicationBuilder.kt index a79d3240..8def836d 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/ApplicationBuilder.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/ApplicationBuilder.kt @@ -19,10 +19,7 @@ import no.nav.dagpenger.mottak.behov.saksbehandling.arena.ArenaApiClient import no.nav.dagpenger.mottak.behov.saksbehandling.arena.ArenaBehovLøser import no.nav.dagpenger.mottak.behov.saksbehandling.gosys.GosysProxyClient import no.nav.dagpenger.mottak.behov.saksbehandling.gosys.OpprettGosysOppgaveLøser -import no.nav.dagpenger.mottak.behov.vilkårtester.MinsteinntektVurderingLøser -import no.nav.dagpenger.mottak.behov.vilkårtester.RegelApiHttpClient import no.nav.dagpenger.mottak.db.InnsendingPostgresRepository -import no.nav.dagpenger.mottak.db.MinsteinntektVurderingPostgresRepository import no.nav.dagpenger.mottak.db.PostgresDataSourceBuilder import no.nav.dagpenger.mottak.observers.FerdigstiltInnsendingObserver import no.nav.dagpenger.mottak.observers.InnsendingProbe @@ -36,12 +33,9 @@ private val logg = KotlinLogging.logger {} internal class ApplicationBuilder(env: Map) : RapidsConnection.StatusListener { private val innsendingRepository = InnsendingPostgresRepository(PostgresDataSourceBuilder.dataSource) private val safClient = SafClient(Config.properties) - private val regelApiClient = RegelApiHttpClient(Config.properties) private val arenaApiClient = ArenaApiClient(Config.properties) private val journalpostApiClient = JournalpostApiClient(tokenProvider = Config.properties.dokarkivTokenProvider) private val gosysProxyClient = GosysProxyClient(Config.properties) - private val minsteinntektVurderingRepository = - MinsteinntektVurderingPostgresRepository(PostgresDataSourceBuilder.dataSource) private val ferdigstiltInnsendingObserver = FerdigstiltInnsendingObserver(Config.kafkaProducerProperties) private val rapidsConnection = @@ -80,11 +74,6 @@ internal class ApplicationBuilder(env: Map) : RapidsConnection.S this, ) SøknadsdataBehovLøser(safClient, this) - MinsteinntektVurderingLøser( - regelApiClient = regelApiClient, - repository = minsteinntektVurderingRepository, - rapidsConnection = this, - ) ArenaBehovLøser(arenaApiClient, this) OpprettGosysOppgaveLøser(gosysProxyClient, this) diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/Config.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/Config.kt index 80e5df61..62540536 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/Config.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/Config.kt @@ -26,8 +26,6 @@ internal object Config { "DB_PORT" to "5432", "DB_USERNAME" to "username", "DP_PROXY_SCOPE" to "api://dev-fss.teamdagpenger.dp-proxy/.default", - "DP_REGEL_API_SCOPE" to "api://dev-gcp.teamdagpenger.dp-regel-api/.default", - "DP_REGEL_API_URL" to "http://dp-regel-api.teamdagpenger", "HTTP_PORT" to "8080", "KAFKA_CONSUMER_GROUP_ID" to "dp-mottak-v1", "KAFKA_EXTRA_TOPIC" to "teamdagpenger.mottak.v1,teamdagpenger.regel.v1", @@ -50,8 +48,6 @@ internal object Config { "DOKARKIV_SCOPE" to "api://prod-fss.teamdokumenthandtering.dokarkiv/.default", "DOKARKIV_INGRESS" to "dokarkiv.prod-fss-pub.nais.io", "DP_PROXY_SCOPE" to "api://prod-fss.teamdagpenger.dp-proxy/.default", - "DP_REGEL_API_SCOPE" to "api://prod-gcp.teamdagpenger.dp-regel-api/.default", - "PDL_API_SCOPE" to "api://prod-fss.pdl.pdl-api/.default", "SKJERMING_API_SCOPE" to "api://prod-gcp.nom.skjermede-personer-pip/.default", ), ) @@ -127,8 +123,6 @@ internal object Config { fun Configuration.dpProxyUrl() = this[Key("DP_PROXY_HOST", stringType)].addHttprotocoll() - fun Configuration.dpRegelApiUrl() = this[Key("DP_REGEL_API_URL", stringType)] - fun Configuration.pdlApiUrl() = this[Key("PDL_API_HOST", stringType)].addHttprotocoll() fun asMap(): Map = diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingMediator.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingMediator.kt index bc6177f2..45616067 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingMediator.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingMediator.kt @@ -4,13 +4,11 @@ import mu.KotlinLogging import no.nav.dagpenger.mottak.db.InnsendingRepository import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveFeilet import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveOpprettet -import no.nav.dagpenger.mottak.meldinger.Eksisterendesaker import no.nav.dagpenger.mottak.meldinger.GosysOppgaveOpprettet import no.nav.dagpenger.mottak.meldinger.JoarkHendelse import no.nav.dagpenger.mottak.meldinger.Journalpost import no.nav.dagpenger.mottak.meldinger.JournalpostFerdigstilt import no.nav.dagpenger.mottak.meldinger.JournalpostOppdatert -import no.nav.dagpenger.mottak.meldinger.MinsteinntektArbeidsinntektVurdert import no.nav.dagpenger.mottak.meldinger.PersonInformasjon import no.nav.dagpenger.mottak.meldinger.PersonInformasjonIkkeFunnet import no.nav.dagpenger.mottak.meldinger.søknadsdata.Søknadsdata @@ -55,18 +53,6 @@ internal class InnsendingMediator( } } - fun håndter(minsteinntektVurdering: MinsteinntektArbeidsinntektVurdert) { - håndter(minsteinntektVurdering) { innsending -> - innsending.håndter(minsteinntektVurdering) - } - } - - fun håndter(eksisterendeSaker: Eksisterendesaker) { - håndter(eksisterendeSaker) { innsending -> - innsending.håndter(eksisterendeSaker) - } - } - fun håndter(oppgaveOpprettet: GosysOppgaveOpprettet) { håndter(oppgaveOpprettet) { innsending -> innsending.håndter(oppgaveOpprettet) diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/Arena.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/Arena.kt index fc0948d9..adde4526 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/Arena.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/Arena.kt @@ -23,8 +23,6 @@ import java.time.Duration import java.time.LocalDate internal interface ArenaOppslag { - suspend fun harEksisterendeSaker(fnr: String): Boolean - suspend fun opprettStartVedtakOppgave( journalpostId: String, parametere: OpprettArenaOppgaveParametere, @@ -58,17 +56,6 @@ internal class ArenaApiClient(config: Configuration) : ArenaOppslag { } } - override suspend fun harEksisterendeSaker(fnr: String): Boolean { - sikkerlogg.info { "Forsøker å hente eksisterende saker fra arena for fnr $fnr" } - return proxyArenaClient.request("$baseUrl/sak/aktiv") { - header(HttpHeaders.Authorization, "Bearer ${tokenProvider.invoke()}") - header(HttpHeaders.ContentType, "application/json") - header(HttpHeaders.Accept, "application/json") - method = HttpMethod.Post - setBody(AktivSakRequest(fnr)) - }.body().harAktivSak - } - override suspend fun opprettStartVedtakOppgave( journalpostId: String, parametere: OpprettArenaOppgaveParametere, diff --git "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270ser.kt" "b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270ser.kt" index 48e69c08..5e9bf1a5 100644 --- "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270ser.kt" +++ "b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270ser.kt" @@ -12,56 +12,9 @@ import no.nav.helse.rapids_rivers.withMDC internal class ArenaBehovLøser(arenaOppslag: ArenaOppslag, rapidsConnection: RapidsConnection) { init { - EksisterendeSakerBehovLøser(arenaOppslag, rapidsConnection) OpprettArenaOppgaveBehovLøser(arenaOppslag, rapidsConnection) } - private class EksisterendeSakerBehovLøser( - private val arenaOppslag: ArenaOppslag, - rapidsConnection: RapidsConnection, - ) : River.PacketListener { - companion object { - private val logger = KotlinLogging.logger { } - } - - init { - River(rapidsConnection).apply { - validate { it.demandValue("@event_name", "behov") } - validate { it.demandAllOrAny("@behov", listOf("EksisterendeSaker")) } - validate { it.rejectKey("@løsning") } - validate { it.requireKey("@behovId", "journalpostId") } - validate { it.requireKey("fnr") } - }.register(this) - } - - override fun onPacket( - packet: JsonMessage, - context: MessageContext, - ) { - val journalpostId = packet["journalpostId"].asText() - val behovId = packet["@behovId"].asText() - - withMDC( - mapOf( - "behovId" to behovId, - "journalpostId" to journalpostId, - ), - ) { - try { - runBlocking(MDCContext()) { - arenaOppslag.harEksisterendeSaker(packet["fnr"].asText()).also { - packet["@løsning"] = mapOf("EksisterendeSaker" to mapOf("harEksisterendeSak" to it)) - context.publish(packet.toJson()) - } - } - } catch (e: Exception) { - logger.info { "Kunne ikke hente eksisterende saker for søknad med journalpostId $journalpostId" } - throw e - } - } - } - } - private class OpprettArenaOppgaveBehovLøser( private val arenaOppslag: ArenaOppslag, rapidsConnection: RapidsConnection, diff --git "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270ser.kt" "b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270ser.kt" deleted file mode 100644 index a61ce073..00000000 --- "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270ser.kt" +++ /dev/null @@ -1,146 +0,0 @@ -package no.nav.dagpenger.mottak.behov.vilkårtester - -import kotlinx.coroutines.runBlocking -import mu.KotlinLogging -import no.nav.helse.rapids_rivers.JsonMessage -import no.nav.helse.rapids_rivers.MessageContext -import no.nav.helse.rapids_rivers.RapidsConnection -import no.nav.helse.rapids_rivers.River -import no.nav.helse.rapids_rivers.withMDC -import kotlin.concurrent.fixedRateTimer - -internal class MinsteinntektVurderingLøser( - oppryddningPeriode: Long = FEM_MINUTTER, - regelApiClient: RegelApiClient, - private val repository: MinsteinntektVurderingRepository, - private val rapidsConnection: RapidsConnection, -) { - private companion object { - private const val FEM_MINUTTER = 300000.toLong() - val logger = KotlinLogging.logger { } - } - - private val minsteInntektVurderingVaktmester = MinsteInntektVurderingVaktmester() - - init { - StartBehovPacketListener(regelApiClient, rapidsConnection) - LøsningPacketListener(rapidsConnection) - fixedRateTimer( - name = "MinsteinntektVurderingVaktmester", - daemon = true, - initialDelay = oppryddningPeriode, - period = oppryddningPeriode, - ) { minsteInntektVurderingVaktmester.rydd() } - } - - private inner class StartBehovPacketListener( - private val regelApiClient: RegelApiClient, - rapidsConnection: RapidsConnection, - ) : - River.PacketListener { - init { - River(rapidsConnection).apply { - validate { it.demandValue("@event_name", "behov") } - validate { it.demandAllOrAny("@behov", listOf("MinsteinntektVurdering")) } - validate { it.rejectKey("@løsning") } - validate { it.requireKey("@behovId", "journalpostId") } - validate { it.requireKey("aktørId") } - }.register(this) - } - - override fun onPacket( - packet: JsonMessage, - context: MessageContext, - ) { - val journalpostId = packet["journalpostId"].asText() - val behovId = packet["@behovId"].asText() - - withMDC( - mapOf( - "behovId" to behovId, - "journalpostId" to journalpostId, - ), - ) { - runBlocking { - try { - logger.info { "Forsøker å opprette minsteinntektvurderingsbehov i regel-api for journalpost med $journalpostId" } - regelApiClient.startMinsteinntektVurdering( - aktørId = packet["aktørId"].asText(), - journalpostId = journalpostId, - ) - repository.lagre(journalpostId, packet) - } catch (e: Exception) { - logger.warn(e) { "Feil ved start av minsteinntekts vurdering for journalpost med id $journalpostId" } - packet["@løsning"] = ikkeFåttSvar() - context.publish(packet.toJson()) - } - } - } - } - } - - private inner class MinsteInntektVurderingVaktmester { - fun rydd() { - logger.info { "Starter MinsteInntektVurderingVaktmester jobb" } - - repository.slettUtgåtteVurderinger().forEach { (jpId, packet) -> - packet["@løsning"] = ikkeFåttSvar() - rapidsConnection.publish(jpId, packet.toJson()).also { - logger.info { "Ryddet opp utgått innsending for journalpostId $jpId" } - } - } - } - } - - private inner class LøsningPacketListener( - rapidsConnection: RapidsConnection, - ) : - River.PacketListener { - init { - River(rapidsConnection).apply { - validate { - it.demandValue("kontekstType", "soknad") - it.requireKey("kontekstId") - it.requireKey("minsteinntektResultat") - } - }.register(this) - } - - override fun onPacket( - packet: JsonMessage, - context: MessageContext, - ) { - val key = repository.fjern(packet["kontekstId"].asText()) - key?.let { - it["@løsning"] = - mapOf( - "MinsteinntektVurdering" to - MinsteinntektVurdering(packet["minsteinntektResultat"]["oppfyllerMinsteinntekt"].asBoolean()), - ) - context.publish(it.toJson()) - logger.info { "Løste behov for minsteinntekt ${packet["kontekstId"].asText()}" } - } - } - } - - private data class MinsteinntektVurdering(val oppfyllerMinsteArbeidsinntekt: Boolean) - - private fun ikkeFåttSvar() = - mapOf( - "MinsteinntektVurdering" to - mapOf( - "oppfyllerMinsteArbeidsinntekt" to null, - ), - ) -} - -interface MinsteinntektVurderingRepository { - fun lagre( - journalpostId: String, - packet: JsonMessage, - ): Int - - fun fjern(journalpostId: String): JsonMessage? - - fun slettUtgåtteVurderinger(): List> -} diff --git "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/RegelApi.kt" "b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/RegelApi.kt" deleted file mode 100644 index 3b73cad7..00000000 --- "a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/RegelApi.kt" +++ /dev/null @@ -1,71 +0,0 @@ -package no.nav.dagpenger.mottak.behov.vilkårtester - -import com.natpryce.konfig.Configuration -import io.ktor.client.HttpClient -import io.ktor.client.plugins.DefaultRequest -import io.ktor.client.request.header -import io.ktor.client.request.request -import io.ktor.client.request.setBody -import io.ktor.http.ContentType -import io.ktor.http.HttpHeaders -import io.ktor.http.HttpMethod -import io.ktor.http.contentType -import mu.KotlinLogging -import no.nav.dagpenger.mottak.Config.dpRegelApiTokenProvider -import no.nav.dagpenger.mottak.Config.dpRegelApiUrl -import no.nav.dagpenger.mottak.behov.JsonMapper.jacksonJsonAdapter -import java.time.LocalDate - -internal interface RegelApiClient { - suspend fun startMinsteinntektVurdering( - aktørId: String, - journalpostId: String, - ) -} - -internal class RegelApiHttpClient(config: Configuration) : RegelApiClient { - companion object { - private val logger = KotlinLogging.logger {} - } - - private val tokenProvider = config.dpRegelApiTokenProvider - - private val behovClient = - HttpClient { - expectSuccess = true - install(DefaultRequest) { - this.url("${config.dpRegelApiUrl()}/behov") - } - } - - override suspend fun startMinsteinntektVurdering( - aktørId: String, - journalpostId: String, - ) { - behovClient.request { - header(HttpHeaders.Authorization, "Bearer ${tokenProvider.invoke()}") - contentType(ContentType.Application.Json) - method = HttpMethod.Post - setBody( - BehovRequest( - aktorId = aktørId, - regelkontekst = RegelKontekst(id = journalpostId), - beregningsdato = LocalDate.now().toString(), - ).toJson(), - ) - }.also { response -> - logger.info { "Opprettet minsteinntekt vurdering behov for journalpost med id $journalpostId, status: ${response.status}" } - } - } -} - -internal data class BehovRequest( - val aktorId: String, - val regelkontekst: RegelKontekst, - val beregningsdato: String, - val regelverksdato: String? = beregningsdato, -) { - fun toJson(): String = jacksonJsonAdapter.writeValueAsString(this).trimIndent() -} - -internal data class RegelKontekst(val id: String, val type: String = "soknad") diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/db/MinsteinntektVurderingPostgresRepository.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/db/MinsteinntektVurderingPostgresRepository.kt deleted file mode 100644 index 2a92a97b..00000000 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/db/MinsteinntektVurderingPostgresRepository.kt +++ /dev/null @@ -1,114 +0,0 @@ -package no.nav.dagpenger.mottak.db - -import kotliquery.queryOf -import kotliquery.sessionOf -import kotliquery.using -import mu.KotlinLogging -import no.nav.dagpenger.mottak.behov.vilkårtester.MinsteinntektVurderingRepository -import no.nav.helse.rapids_rivers.JsonMessage -import no.nav.helse.rapids_rivers.MessageProblems -import org.postgresql.util.PGobject -import javax.sql.DataSource - -internal class MinsteinntektVurderingPostgresRepository(private val dataSource: DataSource) : - MinsteinntektVurderingRepository { - private companion object { - val logger = KotlinLogging.logger {} - private val låseNøkkel = 573463 - } - - override fun lagre( - journalpostId: String, - packet: JsonMessage, - ): Int { - return using(sessionOf(dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - """INSERT INTO minsteinntekt_vurdering_v1(journalpostId,packet) - |VALUES(:journalpostId,:packet) ON CONFLICT DO NOTHING - """.trimMargin(), - mapOf( - "journalpostId" to journalpostId.toLong(), - "packet" to - PGobject().apply { - type = "jsonb" - value = packet.toJson() - }, - ), - ).asUpdate, - ) - } - } - - override fun fjern(journalpostId: String): JsonMessage? { - return using(sessionOf(dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - "DELETE FROM minsteinntekt_vurdering_v1 WHERE journalpostId=:journalpostId RETURNING *", - mapOf( - "journalpostId" to journalpostId.toLong(), - ), - ).map { res -> - res.string("packet") - }.asSingle, - ) - }?.let { - JsonMessage(it, MessageProblems(it)) - } - } - - override fun slettUtgåtteVurderinger(): List> { - return if (lås()) { - try { - logger.info { "Fikk lås, kjører vaktmesterspørring" } - return using(sessionOf(dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - "DELETE FROM minsteinntekt_vurdering_v1 WHERE opprettet < (now() - (make_interval(mins := 5))) RETURNING *", - ).map { res -> - val jpId = res.string("journalpostId") - val packet = res.string("packet") - Pair(jpId, JsonMessage(packet, MessageProblems(packet))) - }.asList, - ) - } - } finally { - logger.info { "Lås opp? ${låsOpp()}, ferdig med vaktmesterspørring" } - } - } else { - logger.info { "Fikk IKKE lås, kjører IKKE vaktmesterspørring" } - emptyList() - } - } - - private fun lås(): Boolean { - return using(sessionOf(dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - "SELECT pg_try_advisory_lock(:key)", - mapOf("key" to låseNøkkel), - ).map { res -> - res.boolean("pg_try_advisory_lock") - }.asSingle, - ) ?: false - } - } - - private fun låsOpp(): Boolean { - return using(sessionOf(dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - "SELECT pg_advisory_unlock(:key)", - mapOf("key" to låseNøkkel), - ).map { res -> - res.boolean("pg_advisory_unlock") - }.asSingle, - ) ?: false - } - } -} diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/EksisterendeSakerMottak.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/EksisterendeSakerMottak.kt deleted file mode 100644 index eb3e570f..00000000 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/EksisterendeSakerMottak.kt +++ /dev/null @@ -1,54 +0,0 @@ -package no.nav.dagpenger.mottak.tjenester - -import com.fasterxml.jackson.databind.JsonNode -import mu.KotlinLogging -import no.nav.dagpenger.mottak.Aktivitetslogg -import no.nav.dagpenger.mottak.Aktivitetslogg.Aktivitet.Behov.Behovtype -import no.nav.dagpenger.mottak.InnsendingMediator -import no.nav.dagpenger.mottak.meldinger.Eksisterendesaker -import no.nav.helse.rapids_rivers.JsonMessage -import no.nav.helse.rapids_rivers.MessageContext -import no.nav.helse.rapids_rivers.RapidsConnection -import no.nav.helse.rapids_rivers.River -import no.nav.helse.rapids_rivers.asLocalDateTime - -private val sikkerlogg = KotlinLogging.logger("tjenestekall.EksisterendeSakerMottak") -private val logg = KotlinLogging.logger {} - -internal class EksisterendeSakerMottak( - private val innsendingMediator: InnsendingMediator, - rapidsConnection: RapidsConnection, -) : River.PacketListener { - private val løsning = "@løsning.${Behovtype.EksisterendeSaker.name}" - - init { - River(rapidsConnection).apply { - validate { it.requireValue("@event_name", "behov") } - validate { it.requireValue("@final", true) } - validate { it.require("@opprettet", JsonNode::asLocalDateTime) } - validate { it.requireKey(løsning) } - validate { it.requireKey("journalpostId") } - }.register(this) - } - - override fun onPacket( - packet: JsonMessage, - context: MessageContext, - ) { - val journalpostId = packet["journalpostId"].asText() - logg.info { "Fått løsning for $løsning, journalpostId: $journalpostId" } - val eksisterendeSaker = - Eksisterendesaker( - aktivitetslogg = Aktivitetslogg(), - journalpostId = journalpostId, - harEksisterendeSak = packet[løsning]["harEksisterendeSak"].asBoolean(), - ) - - try { - innsendingMediator.håndter(eksisterendeSaker) - } catch (e: Exception) { - sikkerlogg.error(e) { "Feil på mottak(jp:$journalpostId): ${packet.toJson()}" } - throw e - } - } -} diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MinsteinntektVurderingMottak.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MinsteinntektVurderingMottak.kt deleted file mode 100644 index 5fe536bf..00000000 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MinsteinntektVurderingMottak.kt +++ /dev/null @@ -1,49 +0,0 @@ -package no.nav.dagpenger.mottak.tjenester - -import com.fasterxml.jackson.databind.JsonNode -import mu.KotlinLogging -import no.nav.dagpenger.mottak.Aktivitetslogg -import no.nav.dagpenger.mottak.Aktivitetslogg.Aktivitet.Behov.Behovtype -import no.nav.dagpenger.mottak.InnsendingMediator -import no.nav.dagpenger.mottak.JsonMessageExtensions.getOrNull -import no.nav.dagpenger.mottak.meldinger.MinsteinntektArbeidsinntektVurdert -import no.nav.helse.rapids_rivers.JsonMessage -import no.nav.helse.rapids_rivers.MessageContext -import no.nav.helse.rapids_rivers.RapidsConnection -import no.nav.helse.rapids_rivers.River -import no.nav.helse.rapids_rivers.asLocalDateTime - -private val logg = KotlinLogging.logger {} - -internal class MinsteinntektVurderingMottak( - private val innsendingMediator: InnsendingMediator, - rapidsConnection: RapidsConnection, -) : River.PacketListener { - private val løsning = "@løsning.${Behovtype.MinsteinntektVurdering.name}" - - init { - River(rapidsConnection).apply { - validate { it.requireValue("@event_name", "behov") } - validate { it.requireValue("@final", true) } - validate { it.require("@opprettet", JsonNode::asLocalDateTime) } - validate { it.requireKey(løsning) } - validate { it.requireKey("journalpostId") } - }.register(this) - } - - override fun onPacket( - packet: JsonMessage, - context: MessageContext, - ) { - val journalpostId = packet["journalpostId"].asText() - logg.info { "Fått løsning for $løsning, journalpostId: $journalpostId" } - val minsteinntektVurdering = - MinsteinntektArbeidsinntektVurdert( - aktivitetslogg = Aktivitetslogg(), - journalpostId = journalpostId, - oppfyllerMinsteArbeidsinntekt = packet[løsning].getOrNull("oppfyllerMinsteArbeidsinntekt")?.asBoolean(), - ) - - innsendingMediator.håndter(minsteinntektVurdering) - } -} diff --git a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MottakMediator.kt b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MottakMediator.kt index 47cb6592..a14776af 100644 --- a/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MottakMediator.kt +++ b/mediator/src/main/kotlin/no/nav/dagpenger/mottak/tjenester/MottakMediator.kt @@ -7,11 +7,9 @@ internal class MottakMediator(mediator: InnsendingMediator, rapidsConnection: Ra init { JoarkMottak(mediator, rapidsConnection) JournalpostMottak(mediator, rapidsConnection) - EksisterendeSakerMottak(mediator, rapidsConnection) PersondataMottak(mediator, rapidsConnection) JournalpostOppdatertMottak(mediator, rapidsConnection) JournalpostFerdigstiltMottak(mediator, rapidsConnection) - MinsteinntektVurderingMottak(mediator, rapidsConnection) OpprettArenaOppgaveMottak(mediator, rapidsConnection) SøknadsdataMottak(mediator, rapidsConnection) GosysOppgaveOpprettetMottak(mediator, rapidsConnection) diff --git a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/BehovMediatorTest.kt b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/BehovMediatorTest.kt index d63a3207..53a4451d 100644 --- a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/BehovMediatorTest.kt +++ b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/BehovMediatorTest.kt @@ -2,7 +2,6 @@ package no.nav.dagpenger.mottak import com.fasterxml.jackson.databind.JsonNode import io.mockk.mockk -import no.nav.dagpenger.mottak.Aktivitetslogg.Aktivitet.Behov.Behovtype.EksisterendeSaker import no.nav.helse.rapids_rivers.testsupport.TestRapid import org.junit.jupiter.api.Assertions.assertDoesNotThrow import org.junit.jupiter.api.Assertions.assertEquals @@ -48,7 +47,7 @@ internal class BehovMediatorTest { ), ) hendelse.behov(Aktivitetslogg.Aktivitet.Behov.Behovtype.Søknadsdata, "Trenger Søknadsdata") - hendelse.behov(EksisterendeSaker, "Trenger EksisterendeSaker") + hendelse.behov(Aktivitetslogg.Aktivitet.Behov.Behovtype.OpprettStartVedtakOppgave, "Trenger OpprettStartVedtakOppgave") behovMediator.håndter(hendelse) @@ -63,7 +62,7 @@ internal class BehovMediatorTest { assertDoesNotThrow { UUID.fromString(it["@id"].asText()) } assertTrue(it.hasNonNull("@opprettet")) assertDoesNotThrow { LocalDateTime.parse(it["@opprettet"].asText()) } - assertEquals(listOf("Persondata", "Søknadsdata", "EksisterendeSaker"), it["@behov"].map(JsonNode::asText)) + assertEquals(listOf("Persondata", "Søknadsdata", "OpprettStartVedtakOppgave"), it["@behov"].map(JsonNode::asText)) assertEquals("behov", it["@event_name"].asText()) assertEquals("12344", it["aktørId"].asText()) assertEquals(JOURNALPOST_ID, it["journalpostId"].asText()) @@ -114,8 +113,8 @@ internal class BehovMediatorTest { internal fun `kan ikke produsere samme behov`() { val hendelse = TestHendelse("Hendelse1", aktivitetslogg.barn()) hendelse.kontekst(innsending) - hendelse.behov(EksisterendeSaker, "Trenger EksisterendeSaker") - hendelse.behov(EksisterendeSaker, "Trenger EksisterendeSaker") + hendelse.behov(Aktivitetslogg.Aktivitet.Behov.Behovtype.Persondata, "Trenger Persondata") + hendelse.behov(Aktivitetslogg.Aktivitet.Behov.Behovtype.Persondata, "Trenger Persondata") assertThrows { behovMediator.håndter(hendelse) } } diff --git "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270serTest.kt" "b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270serTest.kt" index 3ddd5b1c..33daea7c 100644 --- "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270serTest.kt" +++ "b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/saksbehandling/arena/ArenaBehovL\303\270serTest.kt" @@ -4,7 +4,6 @@ import io.mockk.coEvery import io.mockk.mockk import no.nav.helse.rapids_rivers.testsupport.TestRapid import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertDoesNotThrow @@ -18,7 +17,6 @@ internal class ArenaBehovLøserTest { private val arenaOppslagMock = mockk().also { - coEvery { it.harEksisterendeSaker(any()) } returns true coEvery { it.opprettStartVedtakOppgave(any(), any()) } returns OpprettVedtakOppgaveResponse( fagsakId = "123", @@ -43,16 +41,6 @@ internal class ArenaBehovLøserTest { testRapid.reset() } - @Test - fun `Løser eksisterende saker behov`() { - testRapid.sendTestMessage(eksisterendeSakerBehov()) - with(testRapid.inspektør) { - assertEquals(1, size) - assertDoesNotThrow { field(0, "@løsning") } - assertTrue(field(0, "@løsning")["EksisterendeSaker"]["harEksisterendeSak"].asBoolean()) - } - } - @Test fun `Løser OpprettStartVedtakOppgave behov`() { testRapid.sendTestMessage(opprettStartVedtakBehov()) @@ -99,22 +87,6 @@ internal class ArenaBehovLøserTest { } } - //language=JSON - private fun eksisterendeSakerBehov(): String = - """ - { - "@event_name": "behov", - "@id": "${UUID.randomUUID()}", - "@behovId": "${UUID.randomUUID()}", - "@behov": [ - "EksisterendeSaker" - ], - "@opprettet" : "${LocalDateTime.now()}", - "journalpostId": "$JOURNALPOST_ID", - "fnr": "12345678910" - } - """.trimIndent() - //language=JSON private fun opprettStartVedtakBehov(): String = """ diff --git "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektSerialiseringTest.kt" "b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektSerialiseringTest.kt" deleted file mode 100644 index 46e7ffe8..00000000 --- "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektSerialiseringTest.kt" +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.dagpenger.mottak.behov.vilkårtester - -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertDoesNotThrow -import java.time.LocalDate - -class MinsteinntektSerialiseringTest { - private val regelkontekst = RegelKontekst("567890") - - @Test - fun `skal serialisere BehovRequest riktig`() { - assertDoesNotThrow { BehovRequest("11111", regelkontekst, LocalDate.now().toString()).toJson() } - } -} diff --git "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270serTest.kt" "b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270serTest.kt" deleted file mode 100644 index 12445f18..00000000 --- "a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/behov/vilk\303\245rtester/MinsteinntektVurderingL\303\270serTest.kt" +++ /dev/null @@ -1,180 +0,0 @@ -package no.nav.dagpenger.mottak.behov.vilkårtester - -import io.mockk.coEvery -import io.mockk.coVerify -import io.mockk.every -import io.mockk.mockk -import kotlinx.coroutines.delay -import kotlinx.coroutines.runBlocking -import kotliquery.queryOf -import kotliquery.sessionOf -import kotliquery.using -import no.nav.dagpenger.mottak.db.MinsteinntektVurderingPostgresRepository -import no.nav.dagpenger.mottak.db.PostgresDataSourceBuilder -import no.nav.helse.rapids_rivers.JsonMessage -import no.nav.helse.rapids_rivers.MessageProblems -import no.nav.helse.rapids_rivers.testsupport.TestRapid -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.postgresql.util.PGobject -import java.time.LocalDateTime -import java.util.UUID - -internal class MinsteinntektVurderingLøserTest { - private val journalpostId = "1234567" - private val aktørId = "456" - val testRapid = TestRapid() - val regelApiClientMock = mockk(relaxed = true) - private val minsteinntektVurderingRepository = - MinsteinntektVurderingPostgresRepository(dataSource = PostgresDataSourceBuilder.dataSource).also { - PostgresDataSourceBuilder.runMigration() - } - - init { - MinsteinntektVurderingLøser( - regelApiClient = regelApiClientMock, - repository = minsteinntektVurderingRepository, - rapidsConnection = testRapid, - ) - } - - @Test - fun `Løser minsteinntekt vurdering behov`() { - testRapid.sendTestMessage(minsteinntektBehov()) - coVerify(exactly = 1) { - regelApiClientMock.startMinsteinntektVurdering(journalpostId = journalpostId, aktørId = aktørId) - } - testRapid.sendTestMessage(minsteinntektLøsningMessage()) - with(testRapid.inspektør) { - assertEquals(1, size) - assertTrue(field(0, "@løsning")["MinsteinntektVurdering"]["oppfyllerMinsteArbeidsinntekt"].asBoolean()) - } - } - - @Test - fun `Starter minsteinntektvurdering og svarer med null hvis dp-regel-api er nede`() { - coEvery { - regelApiClientMock.startMinsteinntektVurdering(journalpostId = journalpostId, aktørId = aktørId) - } throws RuntimeException() - - testRapid.sendTestMessage(minsteinntektBehov()) - with(testRapid.inspektør) { - assertEquals(1, size) - assertTrue(field(0, "@løsning")["MinsteinntektVurdering"]["oppfyllerMinsteArbeidsinntekt"].isNull) - } - } - - @Test - fun `Vaktermester skal rydde`() { - runBlocking { - val repository = - mockk().also { - every { it.slettUtgåtteVurderinger() } returns - listOf( - Pair("0", JsonMessage("""{}""", MessageProblems(""))), - Pair("1", JsonMessage("""{}""", MessageProblems(""))), - ) andThen emptyList() - } - MinsteinntektVurderingLøser( - oppryddningPeriode = 100.toLong(), - regelApiClient = mockk(), - repository = repository, - rapidsConnection = testRapid, - ) - delay(500) - - assertEquals(2, testRapid.inspektør.size) - assertTrue(testRapid.inspektør.message(0)["@løsning"]["MinsteinntektVurdering"]["oppfyllerMinsteArbeidsinntekt"].isNull) - assertTrue(testRapid.inspektør.message(1)["@løsning"]["MinsteinntektVurdering"]["oppfyllerMinsteArbeidsinntekt"].isNull) - assertEquals("0", testRapid.inspektør.key(0)) - assertEquals("1", testRapid.inspektør.key(1)) - } - } - - @Test - fun `Kun en minsteinntekt opprydder skal kunne kjøre samtidig`() { - runBlocking { - using(sessionOf(PostgresDataSourceBuilder.dataSource)) { session -> - session.run( - queryOf( - // language=PostgreSQL - """INSERT INTO minsteinntekt_vurdering_v1(journalpostId,packet, opprettet) - |VALUES(:journalpostId,:packet, :opprettet) ON CONFLICT DO NOTHING - """.trimMargin(), - mapOf( - "journalpostId" to 12345, - "opprettet" to LocalDateTime.now().minusDays(2), - "packet" to - PGobject().apply { - type = "jsonb" - value = JsonMessage("""{}""", MessageProblems("")).toJson() - }, - ), - ).asUpdate, - ) - - MinsteinntektVurderingLøser( - oppryddningPeriode = 400.toLong(), - regelApiClient = mockk(), - repository = minsteinntektVurderingRepository, - rapidsConnection = testRapid, - ) - MinsteinntektVurderingLøser( - oppryddningPeriode = 401.toLong(), - regelApiClient = mockk(), - repository = minsteinntektVurderingRepository, - rapidsConnection = testRapid, - ) - MinsteinntektVurderingLøser( - oppryddningPeriode = 402.toLong(), - regelApiClient = mockk(), - repository = minsteinntektVurderingRepository, - rapidsConnection = testRapid, - ) - } - - delay(500) - - assertEquals(1, testRapid.inspektør.size) - } - } - - private fun minsteinntektBehov(): String = - """ - { - "@event_name": "behov", - "@id": "${UUID.randomUUID()}", - "@behovId": "${UUID.randomUUID()}", - "@behov": [ - "MinsteinntektVurdering" - ], - "@opprettet" : "${LocalDateTime.now()}", - "journalpostId": $journalpostId, - "aktørId": $aktørId - } - """.trimIndent() - - //language=JSON - private fun minsteinntektLøsningMessage(): String = - """{ - "system_read_count": 5, - "system_started": "2021-04-16T13:05:11.39579", - "system_correlation_id": "01F3D5PAZ3NZZFE80QRX751ENK", - "behovId": "01F3D5PAYS0BQ6CKNBABMF3ESF", - "aktørId": "1000096233942", - "kontekstId": $journalpostId, - "kontekstType": "soknad", - "behandlingsId": "01F3D5EG005PYBB780VM233GQH", - "beregningsDato": "2021-04-16", - "antallBarn": 0.0, - "regelverksdato": "2021-04-16", - "minsteinntektResultat": { - "sporingsId": "01F3D5PB56XK1E0HSHFQ3QYB7M", - "subsumsjonsId": "01F3D5PB56KQTYX38T287QN9JV", - "regelIdentifikator": "Minsteinntekt.v1", - "oppfyllerMinsteinntekt": true, - "beregningsregel": "KORONA" - } - }""" -} diff --git a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/e2e/MediatorE2ETest.kt b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/e2e/MediatorE2ETest.kt index c9fc40a7..905201a7 100644 --- a/mediator/src/test/kotlin/no/nav/dagpenger/mottak/e2e/MediatorE2ETest.kt +++ b/mediator/src/test/kotlin/no/nav/dagpenger/mottak/e2e/MediatorE2ETest.kt @@ -301,46 +301,6 @@ internal class MediatorE2ETest { } """.trimIndent() - //language=JSON - private fun minsteinntektVurderingMotattHendelse(): String = - """ - { - "@event_name": "behov", - "@final": true, - "@id": "${UUID.randomUUID()}", - "@behov": [ - "MinsteinntektVurdering" - ], - "@opprettet" : "${now()}", - "journalpostId": "$journalpostId", - "@løsning": { - "MinsteinntektVurdering": { - "oppfyllerMinsteArbeidsinntekt": null - } - } - } - """.trimIndent() - - //language=JSON - private fun eksisterendeSakerMotattHendelse(): String = - """ - { - "@event_name": "behov", - "@final": true, - "@id": "${UUID.randomUUID()}", - "@behov": [ - "MinsteinntektVurdering" - ], - "@opprettet" : "${now()}", - "journalpostId": "$journalpostId", - "@løsning": { - "EksisterendeSaker": { - "harEksisterendeSak": false - } - } - } - """.trimIndent() - //language=JSON private fun opprettArenaOppgaveFeilet(): String = """ diff --git a/modell/src/main/kotlin/no/nav/dagpenger/mottak/Aktivitetslogg.kt b/modell/src/main/kotlin/no/nav/dagpenger/mottak/Aktivitetslogg.kt index 3409f43b..efa5c1e1 100644 --- a/modell/src/main/kotlin/no/nav/dagpenger/mottak/Aktivitetslogg.kt +++ b/modell/src/main/kotlin/no/nav/dagpenger/mottak/Aktivitetslogg.kt @@ -206,7 +206,11 @@ class Aktivitetslogg(private var forelder: Aktivitetslogg? = null) : IAktivitets Journalpost, Persondata, Søknadsdata, + + @Deprecated("MinsteinntektVurdering er deprekert men trengs for å rehyrdrere gammel aktivitetslogg") MinsteinntektVurdering, + + @Deprecated("EksisterendeSaker er deprekert men trengs for å rehyrdrere gammel aktivitetslogg") EksisterendeSaker, OpprettStartVedtakOppgave, OpprettVurderhenvendelseOppgave, diff --git a/modell/src/main/kotlin/no/nav/dagpenger/mottak/Innsending.kt b/modell/src/main/kotlin/no/nav/dagpenger/mottak/Innsending.kt index b03b37c0..345abfce 100644 --- a/modell/src/main/kotlin/no/nav/dagpenger/mottak/Innsending.kt +++ b/modell/src/main/kotlin/no/nav/dagpenger/mottak/Innsending.kt @@ -5,12 +5,10 @@ import no.nav.dagpenger.mottak.InnsendingObserver.InnsendingEvent import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveFeilet import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveOpprettet import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveOpprettet.ArenaSak -import no.nav.dagpenger.mottak.meldinger.Eksisterendesaker import no.nav.dagpenger.mottak.meldinger.GosysOppgaveOpprettet import no.nav.dagpenger.mottak.meldinger.JoarkHendelse import no.nav.dagpenger.mottak.meldinger.Journalpost import no.nav.dagpenger.mottak.meldinger.JournalpostOppdatert -import no.nav.dagpenger.mottak.meldinger.MinsteinntektArbeidsinntektVurdert import no.nav.dagpenger.mottak.meldinger.PersonInformasjon import no.nav.dagpenger.mottak.meldinger.PersonInformasjon.Person import no.nav.dagpenger.mottak.meldinger.PersonInformasjonIkkeFunnet @@ -81,18 +79,6 @@ class Innsending private constructor( tilstand.håndter(this, søknadsdata) } - fun håndter(vurderminsteinntektData: MinsteinntektArbeidsinntektVurdert) { - if (journalpostId != vurderminsteinntektData.journalpostId()) return - kontekst(vurderminsteinntektData, "Mottatt informasjon vurdering om minste arbeidsinntekt") - tilstand.håndter(this, vurderminsteinntektData) - } - - fun håndter(eksisterendeSak: Eksisterendesaker) { - if (journalpostId != eksisterendeSak.journalpostId()) return - kontekst(eksisterendeSak, "Mottatt informasjon om eksisterende saker") - tilstand.håndter(this, eksisterendeSak) - } - fun håndter(arenaOppgave: ArenaOppgaveOpprettet) { if (journalpostId != arenaOppgave.journalpostId()) return kontekst(arenaOppgave, "Mottatt informasjon om opprettet Arena oppgave") @@ -172,20 +158,6 @@ class Innsending private constructor( søknadsdata.warn("Forventet ikke Søknadsdata i %s", type.name) } - fun håndter( - innsending: Innsending, - vurderminsteinntektData: MinsteinntektArbeidsinntektVurdert, - ) { - vurderminsteinntektData.warn("Forventet ikke MinsteinntektVurderingData i %s", type.name) - } - - fun håndter( - innsending: Innsending, - eksisterendeSak: Eksisterendesaker, - ) { - eksisterendeSak.warn("Forventet ikke Eksisterendesak i %s", type.name) - } - fun håndter( innsending: Innsending, arenaOppgave: ArenaOppgaveOpprettet, @@ -573,30 +545,6 @@ class Innsending private constructor( ) } - private fun trengerMinsteinntektVurdering(hendelse: Hendelse) { - val person = - requireNotNull(person) { - "Person må eksistere på innsending ved behov ${Behovtype.MinsteinntektVurdering.name}, journalpostId: ${journalpostId()}" - } - hendelse.behov( - Behovtype.MinsteinntektVurdering, - "Trenger vurdering av minste arbeidsinntekt", - mapOf( - "aktørId" to person.aktørId, - ), - ) - } - - private fun trengerEksisterendeSaker(hendelse: Hendelse) { - val person = - requireNotNull(person) { "Person må eksistere på innsending ved behov ${Behovtype.EksisterendeSaker.name}" } - hendelse.behov( - Behovtype.EksisterendeSaker, - "Trenger opplysninger om eksisterende saker", - mapOf("fnr" to person.ident), - ) - } - private fun oppretteArenaStartVedtakOppgave(hendelse: Hendelse) { val journalpost = requireNotNull(journalpost).kategorisertJournalpost() val søknad = requireNotNull(rutingOppslag) diff --git a/modell/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingTilstandType.kt b/modell/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingTilstandType.kt index f82ee0bd..49e22a08 100644 --- a/modell/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingTilstandType.kt +++ b/modell/src/main/kotlin/no/nav/dagpenger/mottak/InnsendingTilstandType.kt @@ -6,8 +6,6 @@ enum class InnsendingTilstandType { AvventerPersondataType, KategoriseringType, AvventerSøknadsdataType, - AvventerMinsteinntektVurderingType, - AvventerSvarOmEksisterendeSakerType, AventerArenaStartVedtakType, AvventerFerdigstillJournalpostType, InnsendingFerdigstiltType, diff --git a/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/Eksisterendesaker.kt b/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/Eksisterendesaker.kt deleted file mode 100644 index 38c52676..00000000 --- a/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/Eksisterendesaker.kt +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.dagpenger.mottak.meldinger - -import no.nav.dagpenger.mottak.Aktivitetslogg -import no.nav.dagpenger.mottak.Hendelse - -class Eksisterendesaker( - aktivitetslogg: Aktivitetslogg, - private val journalpostId: String, - private val harEksisterendeSak: Boolean, -) : Hendelse(aktivitetslogg) { - override fun journalpostId(): String = journalpostId - - fun harEksisterendeSaker(): Boolean = harEksisterendeSak -} diff --git a/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/MinsteinntektArbeidsinntektVurdert.kt b/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/MinsteinntektArbeidsinntektVurdert.kt deleted file mode 100644 index 8328c14c..00000000 --- a/modell/src/main/kotlin/no/nav/dagpenger/mottak/meldinger/MinsteinntektArbeidsinntektVurdert.kt +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.dagpenger.mottak.meldinger - -import no.nav.dagpenger.mottak.Aktivitetslogg -import no.nav.dagpenger.mottak.Hendelse - -class MinsteinntektArbeidsinntektVurdert( - aktivitetslogg: Aktivitetslogg, - private val journalpostId: String, - private val oppfyllerMinsteArbeidsinntekt: Boolean?, -) : Hendelse(aktivitetslogg) { - override fun journalpostId(): String = journalpostId - - fun oppfyllerMinsteArbeidsinntekt(): Boolean? = oppfyllerMinsteArbeidsinntekt -} diff --git a/modell/src/test/kotlin/no/nav/dagpenger/mottak/e2e/AbstractEndeTilEndeTest.kt b/modell/src/test/kotlin/no/nav/dagpenger/mottak/e2e/AbstractEndeTilEndeTest.kt index 3a55c655..699feb3b 100644 --- a/modell/src/test/kotlin/no/nav/dagpenger/mottak/e2e/AbstractEndeTilEndeTest.kt +++ b/modell/src/test/kotlin/no/nav/dagpenger/mottak/e2e/AbstractEndeTilEndeTest.kt @@ -10,14 +10,12 @@ import no.nav.dagpenger.mottak.InnsendingTilstandType import no.nav.dagpenger.mottak.PersonTestData.GENERERT_FØDSELSNUMMER import no.nav.dagpenger.mottak.ReplayFerdigstillEvent import no.nav.dagpenger.mottak.meldinger.ArenaOppgaveOpprettet -import no.nav.dagpenger.mottak.meldinger.Eksisterendesaker import no.nav.dagpenger.mottak.meldinger.GosysOppgaveOpprettet import no.nav.dagpenger.mottak.meldinger.JoarkHendelse import no.nav.dagpenger.mottak.meldinger.Journalpost import no.nav.dagpenger.mottak.meldinger.Journalpost.Bruker import no.nav.dagpenger.mottak.meldinger.JournalpostFerdigstilt import no.nav.dagpenger.mottak.meldinger.JournalpostOppdatert -import no.nav.dagpenger.mottak.meldinger.MinsteinntektArbeidsinntektVurdert import no.nav.dagpenger.mottak.meldinger.PersonInformasjon import no.nav.dagpenger.mottak.meldinger.PersonInformasjonIkkeFunnet import no.nav.dagpenger.mottak.meldinger.søknadsdata.Søknadsdata @@ -134,14 +132,6 @@ abstract class AbstractEndeTilEndeTest { innsending.håndter(søknadsdata()) } - protected fun håndterMinsteinntektVurderingData() { - innsending.håndter(minsteinntektVurderingData()) - } - - protected fun håndterEksisterendesakData() { - innsending.håndter(eksisterendesakData()) - } - protected fun håndterArenaOppgaveOpprettet() { innsending.håndter(arenaOppgaveOpprettet()) } @@ -185,20 +175,6 @@ abstract class AbstractEndeTilEndeTest { oppgaveId = "1234567", ) - private fun eksisterendesakData(): Eksisterendesaker = - Eksisterendesaker( - aktivitetslogg = Aktivitetslogg(), - journalpostId = JOURNALPOST_ID, - harEksisterendeSak = false, - ) - - private fun minsteinntektVurderingData(): MinsteinntektArbeidsinntektVurdert = - MinsteinntektArbeidsinntektVurdert( - aktivitetslogg = Aktivitetslogg(), - journalpostId = JOURNALPOST_ID, - oppfyllerMinsteArbeidsinntekt = false, - ) - private fun søknadsdata(): Søknadsdata = Søknadsdata( aktivitetslogg = Aktivitetslogg(),