diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/GosysService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/GosysService.kt index d889f717..0feace51 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/GosysService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/GosysService.kt @@ -7,26 +7,46 @@ import org.springframework.stereotype.Component @Component class GosysService( private val oppgaveClient: OppgaveClient, -) { - fun sendOppgaveTilGosys( + ) { + fun sendOppgaveTilGosys( + oppgaveId: String, + sykmeldingId: String, + veilederNavIdent: String, + beskrivelse: String? = null, + ) { + val oppgave = oppgaveClient.getOppgave(oppgaveId, sykmeldingId) + + oppgaveClient.oppdaterGosysOppgave( + oppgaveId, + sykmeldingId, + oppgave.versjon, + oppgave.status, + "FS22", + veilederNavIdent, + beskrivelse, + ) + } + + fun sendNasjonalOppgaveTilGosys( oppgaveId: String, sykmeldingId: String, veilederNavIdent: String, beskrivelse: String? = null, ) { - val oppgave = oppgaveClient.getOppgave(oppgaveId, sykmeldingId) - - oppgaveClient.oppdaterGosysOppgave( - oppgaveId, + val oppgave = oppgaveClient.getNasjonalOppgave(oppgaveId, sykmeldingId) + val oppdatertOppgave = oppgave.copy( + behandlesAvApplikasjon = "FS22", + tilordnetRessurs = veilederNavIdent + ) + oppgaveClient.oppdaterNasjonalGosysOppgave( + oppdatertOppgave, sykmeldingId, - oppgave.versjon, - oppgave.status, - "FS22", - veilederNavIdent, - beskrivelse, + oppgaveId, + veilederNavIdent ) } + fun avvisOppgaveTilGosys( oppgaveId: String, sykmeldingId: String, diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/oppgave/OppgaveClient.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/oppgave/OppgaveClient.kt index e54ff130..fa45a83f 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/oppgave/OppgaveClient.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/ferdigstilling/oppgave/OppgaveClient.kt @@ -8,6 +8,7 @@ import no.nav.sykdig.digitalisering.exceptions.IkkeTilgangException import no.nav.sykdig.digitalisering.exceptions.NoOppgaveException import no.nav.sykdig.digitalisering.getFristForFerdigstillingAvOppgave import no.nav.sykdig.digitalisering.papirsykmelding.api.model.FerdigstillRegistrering +import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Veileder import no.nav.sykdig.digitalisering.saf.graphql.SafJournalpost import no.nav.sykdig.digitalisering.saf.graphql.TEMA_SYKMELDING import no.nav.sykdig.objectMapper @@ -544,4 +545,42 @@ class OppgaveClient( throw e } } + + fun oppdaterNasjonalGosysOppgave(oppdatertOppgave: NasjonalOppgaveResponse, sykmeldingId: String, oppgaveId: String, veileder: String) { + val headers = HttpHeaders() + headers.contentType = MediaType.APPLICATION_JSON + headers["X-Correlation-ID"] = oppgaveId + + try { + oppgaveM2mRestTemplate.exchange( + "$url/${oppdatertOppgave.id}", + HttpMethod.PUT, + HttpEntity(oppdatertOppgave, headers), + String::class.java, + ) + log.info("OppdaterOppgave oppgave $oppgaveId for sykmelding $sykmeldingId") + } catch (e: HttpClientErrorException) { + if (e.statusCode.value() == 401 || e.statusCode.value() == 403) { + log.warn( + "Veileder $veileder har ikke tilgang til å " + + "oppdaterOppgave oppgaveId $oppgaveId: ${e.message}", + ) + throw IkkeTilgangException("Veileder har ikke tilgang til oppgave") + } else { + log.error( + "HttpClientErrorException for oppgaveId $oppgaveId med responskode ${e.statusCode.value()} " + + "fra Oppgave ved oppdaterOppgave: ${e.message}", + e, + ) + throw e + } + } catch (e: HttpServerErrorException) { + log.error( + "HttpServerErrorException for oppgaveId $oppgaveId med responskode ${e.statusCode.value()} " + + "fra Oppgave ved oppdaterOppgave: ${e.message}", + e, + ) + throw e + } + } } diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalFerdigstillingsService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalFerdigstillingsService.kt index 45df5aa5..987f1a57 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalFerdigstillingsService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalFerdigstillingsService.kt @@ -108,8 +108,7 @@ class NasjonalFerdigstillingsService( StructuredArguments.fields(loggingMeta), ) val navIdent = nasjonalCommonService.getNavIdent().veilederIdent - gosysService.sendOppgaveTilGosys(oppgaveId, sykmeldingId, navIdent) - + gosysService.sendNasjonalOppgaveTilGosys(oppgaveId, sykmeldingId, navIdent) } } \ No newline at end of file