diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveService.kt index 18a1f7ea136..a580f53a80a 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveService.kt @@ -273,7 +273,7 @@ class AktivitetspliktOppgaveService( enhetsnummer = sak.enhet, avsenderRequest = SaksbehandlerOgAttestant(saksbehandlerIdent = brukerTokenInfo.ident()), ) - val brevrespons: BrevStatusResponse = runBlocking { brevApiKlient.ferdigstillBrev(req, brukerTokenInfo) } + val brevrespons: BrevStatusResponse = runBlocking { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(req, brukerTokenInfo) } if (brevrespons.status.erDistribuert()) { return oppgaveService.ferdigstillOppgave(oppgaveId, brukerTokenInfo) } else { diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/brevjobber/BrevutsendelseService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/brevjobber/BrevutsendelseService.kt index e859c549bb9..a1c4dedea1b 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/brevjobber/BrevutsendelseService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/jobs/brevjobber/BrevutsendelseService.kt @@ -5,6 +5,8 @@ import no.nav.etterlatte.behandling.jobs.brevjobber.SjekkGyldigBrevMottakerResul import no.nav.etterlatte.behandling.klienter.BrevApiKlient import no.nav.etterlatte.brev.BrevParametre import no.nav.etterlatte.brev.SaksbehandlerOgAttestant +import no.nav.etterlatte.brev.model.Brev +import no.nav.etterlatte.brev.model.BrevStatusResponse import no.nav.etterlatte.brev.model.FerdigstillJournalFoerOgDistribuerOpprettetBrev import no.nav.etterlatte.brev.model.Spraak import no.nav.etterlatte.libs.common.feilhaandtering.InternfeilException @@ -12,6 +14,7 @@ import no.nav.etterlatte.libs.common.logging.withLogContext import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern import no.nav.etterlatte.libs.common.oppgave.OppgaveType import no.nav.etterlatte.libs.common.person.maskerFnr +import no.nav.etterlatte.libs.common.retry import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo import no.nav.etterlatte.oppgave.OppgaveService @@ -71,30 +74,37 @@ class BrevutsendelseService( val tomtBrev = BrevParametre.TomtBrev(Spraak.NB) // TODO placeholder inntil vi har en brevmal + val opprettetBrev = + runBlocking { + brevKlient.opprettSpesifiktBrev(brevutsendelse.sakId, tomtBrev, saksbehandler) + } runBlocking { - val opprettetBrev = brevKlient.opprettSpesifiktBrev(brevutsendelse.sakId, tomtBrev, saksbehandler) - val ferdigstiltBrev = - brevKlient.ferdigstillBrev( - FerdigstillJournalFoerOgDistribuerOpprettetBrev( - opprettetBrev.id, - brevutsendelse.sakId, - sak.enhet, - SaksbehandlerOgAttestant(saksbehandler.ident(), saksbehandler.ident()), - ), - saksbehandler, - ) - logger.info("Brev med id ${ferdigstiltBrev.brevId} er ferdigstilt") - - val journalfoertBrev = brevKlient.journalfoerBrev(brevutsendelse.sakId, ferdigstiltBrev.brevId, saksbehandler) - logger.info("Brev med id ${ferdigstiltBrev.brevId} er journaltført (journalpostId: ${journalfoertBrev.journalpostId})") - - val distribuertBrev = brevKlient.distribuerBrev(brevutsendelse.sakId, ferdigstiltBrev.brevId, saksbehandler) - logger.info("Brev med id ${ferdigstiltBrev.brevId} er distribuert (bestillingsId: ${distribuertBrev.bestillingsId})") + retry(3) { + ferdigStillJournalFoerOgDistribuerOpprettetBrev(opprettetBrev, brevutsendelse, sak, saksbehandler) + } } return true } + private fun ferdigStillJournalFoerOgDistribuerOpprettetBrev( + opprettetBrev: Brev, + brevutsendelse: Arbeidsjobb, + sak: Sak, + saksbehandler: BrukerTokenInfo, + ): BrevStatusResponse = + runBlocking { + brevKlient.ferdigstillJournalFoerOgDistribuerBrev( + FerdigstillJournalFoerOgDistribuerOpprettetBrev( + opprettetBrev.id, + brevutsendelse.sakId, + sak.enhet, + SaksbehandlerOgAttestant(saksbehandler.ident(), saksbehandler.ident()), + ), + saksbehandler, + ) + } + private fun opprettManuellOppgave(brevutsendelse: Arbeidsjobb): OppgaveIntern = oppgaveService.opprettOppgave( referanse = brevutsendelse.id.toString(), diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/klienter/BrevApiKlient.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/klienter/BrevApiKlient.kt index c14773830df..5dde98f3cc0 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/klienter/BrevApiKlient.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/klienter/BrevApiKlient.kt @@ -46,7 +46,7 @@ interface BrevApiKlient { brukerTokenInfo: BrukerTokenInfo, ): Brev - suspend fun ferdigstillBrev( + suspend fun ferdigstillJournalFoerOgDistribuerBrev( req: FerdigstillJournalFoerOgDistribuerOpprettetBrev, brukerTokenInfo: BrukerTokenInfo, ): BrevStatusResponse @@ -153,7 +153,7 @@ class BrevApiKlientObo( ) } - override suspend fun ferdigstillBrev( + override suspend fun ferdigstillJournalFoerOgDistribuerBrev( req: FerdigstillJournalFoerOgDistribuerOpprettetBrev, brukerTokenInfo: BrukerTokenInfo, ): BrevStatusResponse = diff --git a/apps/etterlatte-behandling/src/test/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveServiceTest.kt b/apps/etterlatte-behandling/src/test/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveServiceTest.kt index 18c6e7e81bb..639a279c22f 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveServiceTest.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/behandling/aktivitetsplikt/AktivitetspliktOppgaveServiceTest.kt @@ -410,7 +410,7 @@ class AktivitetspliktOppgaveServiceTest { ) every { oppgaveService.sjekkOmKanFerdigstilleOppgave(any(), any()) } throws OppgaveKanIkkeEndres(oppgaveId, Status.AVBRUTT) every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk() - coEvery { brevApiKlient.ferdigstillBrev(any(), any()) } returns + coEvery { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } returns BrevStatusResponse(brevId, no.nav.etterlatte.brev.model.Status.DISTRIBUERT) assertThrows { @@ -446,11 +446,11 @@ class AktivitetspliktOppgaveServiceTest { ) every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk() every { oppgaveService.sjekkOmKanFerdigstilleOppgave(any(), any()) } just Runs - coEvery { brevApiKlient.ferdigstillBrev(any(), any()) } returns + coEvery { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } returns BrevStatusResponse(brevId, no.nav.etterlatte.brev.model.Status.DISTRIBUERT) service.ferdigstillBrevOgOppgave(oppgaveId, simpleSaksbehandler) verify(exactly = 1) { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } - coVerify(exactly = 1) { brevApiKlient.ferdigstillBrev(any(), any()) } + coVerify(exactly = 1) { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } } @Test @@ -480,7 +480,7 @@ class AktivitetspliktOppgaveServiceTest { ) every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk() every { oppgaveService.sjekkOmKanFerdigstilleOppgave(any(), any()) } just Runs - coEvery { brevApiKlient.ferdigstillBrev(any(), any()) } returns + coEvery { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } returns BrevStatusResponse(brevId, no.nav.etterlatte.brev.model.Status.JOURNALFOERT) assertThrows { service.ferdigstillBrevOgOppgave(oppgaveId, simpleSaksbehandler) diff --git a/apps/etterlatte-behandling/src/test/kotlin/behandling/jobs/brevjobber/BrevutsendelseServiceTest.kt b/apps/etterlatte-behandling/src/test/kotlin/behandling/jobs/brevjobber/BrevutsendelseServiceTest.kt index 6b3108941a8..352371a979e 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/behandling/jobs/brevjobber/BrevutsendelseServiceTest.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/behandling/jobs/brevjobber/BrevutsendelseServiceTest.kt @@ -52,7 +52,7 @@ internal class BrevutsendelseServiceTest { mockk { every { id } returns oppgaveId } coEvery { brevKlient.opprettSpesifiktBrev(any(), any(), any()) } returns mockk { every { id } returns 1 } - coEvery { brevKlient.ferdigstillBrev(any(), any()) } returns + coEvery { brevKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } returns mockk { every { brevId } returns 1 every { status } returns Status.FERDIGSTILT @@ -69,7 +69,7 @@ internal class BrevutsendelseServiceTest { coVerifyOrder { brevKlient.opprettSpesifiktBrev(sak.id, any(), any()) - brevKlient.ferdigstillBrev(any(), any()) + brevKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) brevKlient.journalfoerBrev(sak.id, any(), any()) brevKlient.distribuerBrev(sak.id, any(), any()) } diff --git a/apps/etterlatte-behandling/src/test/kotlin/integration/EksterneKlienter.kt b/apps/etterlatte-behandling/src/test/kotlin/integration/EksterneKlienter.kt index 9e5534e20d8..6da35a4bdc1 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/integration/EksterneKlienter.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/integration/EksterneKlienter.kt @@ -375,7 +375,7 @@ class BrevApiKlientTest : BrevApiKlient { TODO("Not yet implemented") } - override suspend fun ferdigstillBrev( + override suspend fun ferdigstillJournalFoerOgDistribuerBrev( req: FerdigstillJournalFoerOgDistribuerOpprettetBrev, brukerTokenInfo: BrukerTokenInfo, ): BrevStatusResponse { diff --git a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/BrevService.kt b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/BrevService.kt index e2950e31b0f..cdd8720ca78 100644 --- a/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/BrevService.kt +++ b/apps/etterlatte-brev-api/src/main/kotlin/no/nav/etterlatte/brev/BrevService.kt @@ -105,6 +105,7 @@ class BrevService( bruker: BrukerTokenInfo, ): BrevStatusResponse { val brevId = req.brevId + val hentBrev = db.hentBrev(brevId) try { val brevStatus = hentBrev.status