Skip to content

Commit

Permalink
Bruk endepunkt mot brev riktig og ha med retry
Browse files Browse the repository at this point in the history
* Retry her fungerer siden exception blir fanget i brevsteget
  • Loading branch information
sebassonav committed Dec 12, 2024
1 parent a2e3f75 commit 5158386
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ 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
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
Expand Down Expand Up @@ -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(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ interface BrevApiKlient {
brukerTokenInfo: BrukerTokenInfo,
): Brev

suspend fun ferdigstillBrev(
suspend fun ferdigstillJournalFoerOgDistribuerBrev(
req: FerdigstillJournalFoerOgDistribuerOpprettetBrev,
brukerTokenInfo: BrukerTokenInfo,
): BrevStatusResponse
Expand Down Expand Up @@ -153,7 +153,7 @@ class BrevApiKlientObo(
)
}

override suspend fun ferdigstillBrev(
override suspend fun ferdigstillJournalFoerOgDistribuerBrev(
req: FerdigstillJournalFoerOgDistribuerOpprettetBrev,
brukerTokenInfo: BrukerTokenInfo,
): BrevStatusResponse =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ class AktivitetspliktOppgaveServiceTest {
)
every { oppgaveService.sjekkOmKanFerdigstilleOppgave(any(), any()) } throws OppgaveKanIkkeEndres(oppgaveId, Status.AVBRUTT)
every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk<OppgaveIntern>()
coEvery { brevApiKlient.ferdigstillBrev(any(), any()) } returns
coEvery { brevApiKlient.ferdigstillJournalFoerOgDistribuerBrev(any(), any()) } returns
BrevStatusResponse(brevId, no.nav.etterlatte.brev.model.Status.DISTRIBUERT)

assertThrows<FeilIOppgave> {
Expand Down Expand Up @@ -446,11 +446,11 @@ class AktivitetspliktOppgaveServiceTest {
)
every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk<OppgaveIntern>()
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
Expand Down Expand Up @@ -480,7 +480,7 @@ class AktivitetspliktOppgaveServiceTest {
)
every { oppgaveService.ferdigstillOppgave(oppgaveId, simpleSaksbehandler) } returns mockk<OppgaveIntern>()
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<BrevBleIkkeFerdig> {
service.ferdigstillBrevOgOppgave(oppgaveId, simpleSaksbehandler)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ class BrevApiKlientTest : BrevApiKlient {
TODO("Not yet implemented")
}

override suspend fun ferdigstillBrev(
override suspend fun ferdigstillJournalFoerOgDistribuerBrev(
req: FerdigstillJournalFoerOgDistribuerOpprettetBrev,
brukerTokenInfo: BrukerTokenInfo,
): BrevStatusResponse {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ class BrevService(
bruker: BrukerTokenInfo,
): BrevStatusResponse {
val brevId = req.brevId

val hentBrev = db.hentBrev(brevId)
try {
val brevStatus = hentBrev.status
Expand Down

0 comments on commit 5158386

Please sign in to comment.