Skip to content

Commit

Permalink
Merge branch 'main' into pdlSchemaOppdatering
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/resources/pdl/pdl-api-schema.graphql
  • Loading branch information
throndi committed Sep 20, 2024
2 parents dbce8cb + a01a0d4 commit d2e6eb9
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 20 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<felles.version>3.20240913110742_adb42f8</felles.version>
<prosessering.version>2.20240902084316_04f17df</prosessering.version>
<start-class>no.nav.familie.klage.ApplicationKt</start-class>
<kontrakter.version>3.0_20240913135049_042822f</kontrakter.version>
<kontrakter.version>3.0_20240917094852_351320d</kontrakter.version>
<saksstatistikk-klage.version>2.0_20230214104704_706e9c0</saksstatistikk-klage.version>
<nav.security.version>5.0.5</nav.security.version> <!-- Denne burde være samme versjon som i felles -->
<okhttp3.version>4.9.1</okhttp3.version> <!-- overskriver spring sin versjon, blir brukt av mock-oauth2-server -->
Expand Down
16 changes: 16 additions & 0 deletions src/main/kotlin/no/nav/familie/klage/kabal/KabalKafkaListener.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ data class BehandlingEvent(
BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET ->
detaljer.ankeITrygderettenbehandlingOpprettet?.sendtTilTrygderetten ?: throw Feil(feilmelding)
BehandlingEventType.BEHANDLING_FEILREGISTRERT -> detaljer.behandlingFeilregistrert?.feilregistrert ?: throw Feil("Fant ikke tidspunkt for feilregistrering")
BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET -> detaljer.behandlingEtterTrygderettenOpphevetAvsluttet?.avsluttet ?: throw Feil(feilmelding)
}
}

Expand Down Expand Up @@ -97,12 +98,14 @@ data class BehandlingDetaljer(
val ankebehandlingAvsluttet: AnkebehandlingAvsluttetDetaljer? = null,
val behandlingFeilregistrert: BehandlingFeilregistrertDetaljer? = null,
val ankeITrygderettenbehandlingOpprettet: AnkeITrygderettenbehandlingOpprettetDetaljer? = null,
val behandlingEtterTrygderettenOpphevetAvsluttet: BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer? = null,
) {

fun oppgaveTekst(saksbehandlersEnhet: String): String {
return klagebehandlingAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
?: ankebehandlingOpprettet?.oppgaveTekst(saksbehandlersEnhet)
?: ankebehandlingAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
?: behandlingEtterTrygderettenOpphevetAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
?: "Ukjent"
}
}
Expand Down Expand Up @@ -148,3 +151,16 @@ data class AnkebehandlingAvsluttetDetaljer(
data class BehandlingFeilregistrertDetaljer(val reason: String, val type: Type, val feilregistrert: LocalDateTime)

data class AnkeITrygderettenbehandlingOpprettetDetaljer(val sendtTilTrygderetten: LocalDateTime, val utfall: KlageinstansUtfall?)

data class BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(
val avsluttet: LocalDateTime,
val utfall: KlageinstansUtfall,
val journalpostReferanser: List<String>,
) {
fun oppgaveTekst(saksbehandlersEnhet: String): String {
return "Hendelse fra klage av type behandling etter trygderetten opphevet avsluttet med utfall: $utfall mottatt. " +
"Avsluttet tidspunkt: $avsluttet. " +
"Opprinnelig klagebehandling er behandlet av enhet: $saksbehandlersEnhet. " +
"Journalpost referanser: ${journalpostReferanser.joinToString(", ")}"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,24 +51,20 @@ class BehandlingEventService(

when (behandlingEvent.type) {
BehandlingEventType.KLAGEBEHANDLING_AVSLUTTET -> behandleKlageAvsluttet(behandling, behandlingEvent)
BehandlingEventType.ANKEBEHANDLING_AVSLUTTET,
-> behandleAnkeAvsluttet(behandling, behandlingEvent)
BehandlingEventType.ANKEBEHANDLING_AVSLUTTET, BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET,
-> opprettOppgaveTask(behandling, behandlingEvent)

BehandlingEventType.ANKEBEHANDLING_OPPRETTET,
BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET,
-> {
/*
* Skal ikke gjøre noe dersom eventtype er ANKEBEHANDLING_OPPRETTET
* eller ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET
* */
// Skal ikke gjøre noe dersom eventtype er ANKEBEHANDLING_OPPRETTET eller ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET
}

BehandlingEventType.BEHANDLING_FEILREGISTRERT -> opprettBehandlingFeilregistretTask(behandling.id)
BehandlingEventType.BEHANDLING_FEILREGISTRERT -> opprettBehandlingFeilregistrertTask(behandling.id)
}
}
}

private fun opprettBehandlingFeilregistretTask(behandlingId: UUID) {
private fun opprettBehandlingFeilregistrertTask(behandlingId: UUID) {
taskService.save(BehandlingFeilregistrertTask.opprettTask(behandlingId))
}

Expand All @@ -95,10 +91,6 @@ class BehandlingEventService(
null
}

private fun behandleAnkeAvsluttet(behandling: Behandling, behandlingEvent: BehandlingEvent) {
opprettOppgaveTask(behandling, behandlingEvent)
}

private fun behandleKlageAvsluttet(behandling: Behandling, behandlingEvent: BehandlingEvent) {
when (behandling.status) {
BehandlingStatus.FERDIGSTILT -> logger.error("Mottatt event på ferdigstilt behandling $behandlingEvent - event kan være lest fra før")
Expand All @@ -109,7 +101,7 @@ class BehandlingEventService(
}
}

private fun opprettOppgaveTask(behandling: Behandling, behandlingEvent: BehandlingEvent) {
fun opprettOppgaveTask(behandling: Behandling, behandlingEvent: BehandlingEvent) {
val fagsakDomain = fagsakRepository.finnFagsakForBehandlingId(behandling.id)
?: error("Finner ikke fagsak for behandlingId: ${behandling.id}")
val saksbehandlerIdent = behandling.sporbar.endret.endretAv
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package no.nav.familie.klage.personopplysninger.fullmakt

import no.nav.familie.http.client.AbstractRestClient
import org.apache.hc.client5.http.utils.Base64
import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Qualifier
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/no/nav/familie/klage/test/TestController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class TestController(
private val fagsakPersonService: FagsakPersonService,
private val fagsakRepository: FagsakRepository,
private val opprettBehandlingService: OpprettBehandlingService,
private val behandleSakOppgaveRepository: BehandleSakOppgaveRepository
private val behandleSakOppgaveRepository: BehandleSakOppgaveRepository,
) {

@PostMapping("opprett")
Expand All @@ -49,15 +49,15 @@ class TestController(
),
)

val behandleSakOppgave = BehandleSakOppgave(
val behandleSakOppgave = BehandleSakOppgave(
behandlingId,
123,
)

behandleSakOppgaveRepository.insert(behandleSakOppgave)

return Ressurs.success(
behandlingId
behandlingId,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class FamilieIntegrasjonerMock(integrasjonerConfig: IntegrasjonerConfig) {
.withQueryParam("variantFormat", equalTo("ARKIV"))
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(pdfAsBase64String)))),
get(urlPathMatching("${integrasjonerConfig.oppgaveUri.path}/([0-9]*)"))
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Oppgave(Random.nextLong().absoluteValue, tilordnetRessurs = "Z994152", tema = Tema.ENF, status = StatusEnum.UNDER_BEHANDLING),)))),
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Oppgave(Random.nextLong().absoluteValue, tilordnetRessurs = "Z994152", tema = Tema.ENF, status = StatusEnum.UNDER_BEHANDLING))))),
get(urlPathMatching("${integrasjonerConfig.saksbehandlerUri.path}/Z994152"))
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Saksbehandler(UUID.randomUUID(), "Z994152", "Luke", "Skywalker", "4405"))))),
put(urlMatching("${integrasjonerConfig.dokarkivUri.path}.*"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ import no.nav.familie.klage.integrasjoner.FamilieIntegrasjonerClient
import no.nav.familie.klage.kabal.AnkeITrygderettenbehandlingOpprettetDetaljer
import no.nav.familie.klage.kabal.AnkebehandlingOpprettetDetaljer
import no.nav.familie.klage.kabal.BehandlingDetaljer
import no.nav.familie.klage.kabal.BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer
import no.nav.familie.klage.kabal.BehandlingEvent
import no.nav.familie.klage.kabal.BehandlingFeilregistrertDetaljer
import no.nav.familie.klage.kabal.BehandlingFeilregistrertTask
import no.nav.familie.klage.kabal.KlagebehandlingAvsluttetDetaljer
import no.nav.familie.klage.kabal.KlageresultatRepository
import no.nav.familie.klage.kabal.Type
import no.nav.familie.klage.kabal.domain.KlageinstansResultat
import no.nav.familie.klage.oppgave.OpprettKabalEventOppgaveTask
import no.nav.familie.klage.testutil.DomainUtil
import no.nav.familie.kontrakter.felles.klage.BehandlingEventType
import no.nav.familie.kontrakter.felles.klage.BehandlingStatus
Expand Down Expand Up @@ -138,6 +140,23 @@ internal class BehandlingEventServiceTest {
assertThat(klageinstansResultatSlot.captured.type).isEqualTo(BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET)
}

@Test
internal fun `Skal kunne lagre resultat for behandlingsevent BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET`() {
val klageinstansResultatSlot = slot<KlageinstansResultat>()

behandlingEventService.handleEvent(
lagBehandlingEvent(
BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET,
BehandlingDetaljer(behandlingEtterTrygderettenOpphevetAvsluttet = BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(LocalDateTime.of(2023, 6, 21, 1, 1), KlageinstansUtfall.HEVET, emptyList())),
),
)

verify(exactly = 1) { behandlingRepository.findByEksternBehandlingId(any()) }
verify(exactly = 1) { klageresultatRepository.insert(capture(klageinstansResultatSlot)) }

assertThat(klageinstansResultatSlot.captured.type).isEqualTo(BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET)
}

@Test
internal fun `Skal ikke ferdigstille behandling for behandlingsevent ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET`() {
val klageinstansResultatSlot = slot<KlageinstansResultat>()
Expand Down Expand Up @@ -167,6 +186,20 @@ internal class BehandlingEventServiceTest {
assertThat(taskSlot.captured.payload).isEqualTo(behandlingMedStatusVenter.id.toString())
}

@Test
internal fun `Skal lage OpprettOppgave-task for behandlingsevent BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET`() {
val taskSlot = slot<Task>()

val behandlingEtterTrygderettenOpphevetAvsluttetDetaljer = BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(LocalDateTime.now(), KlageinstansUtfall.HEVET, emptyList())

every { taskService.save(capture(taskSlot)) } returns mockk()

behandlingEventService.handleEvent(lagBehandlingEvent(BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET, BehandlingDetaljer(behandlingEtterTrygderettenOpphevetAvsluttet = behandlingEtterTrygderettenOpphevetAvsluttetDetaljer)))

assertThat(taskSlot.captured.type).isEqualTo(OpprettKabalEventOppgaveTask.TYPE)
assertThat(taskSlot.captured.payload).contains("Hendelse fra klage av type behandling etter trygderetten opphevet avsluttet med utfall: HEVET mottatt.")
}

private fun lagBehandlingEvent(
behandlingEventType: BehandlingEventType = BehandlingEventType.KLAGEBEHANDLING_AVSLUTTET,
behandlingDetaljer: BehandlingDetaljer? = null,
Expand Down

0 comments on commit d2e6eb9

Please sign in to comment.