diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt index 00fa0fdc..fb10a996 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalOppgaveService.kt @@ -67,8 +67,15 @@ class NasjonalOppgaveService( return updated } - fun findByOppgaveId(oppgaveId: Int): NasjonalManuellOppgaveDAO? { - val oppgave = nasjonalOppgaveRepository.findByOppgaveId(oppgaveId) + fun isValidOppgaveId(oppgaveId: String): Boolean { + val regex = Regex("^\\d{9}$|^[a-zA-Z0-9]{1,20}$") + return oppgaveId.matches(regex) + } + + fun findByOppgaveId(oppgaveId: String): NasjonalManuellOppgaveDAO? { + if(!isValidOppgaveId(oppgaveId)) + throw IllegalArgumentException("Invalid oppgaveId does not contain only alphanumerical characters. oppgaveId: $oppgaveId") + val oppgave = nasjonalOppgaveRepository.findByOppgaveId(oppgaveId.toInt()) if (oppgave == null) return null return oppgave @@ -82,7 +89,7 @@ class NasjonalOppgaveService( } fun getNasjonalOppgave(oppgaveId: String): NasjonalManuellOppgaveDAO { - val oppgave = findByOppgaveId(oppgaveId.toInt()) + val oppgave = findByOppgaveId(oppgaveId) if (oppgave == null) { log.warn("Fant ikke oppgave med id $oppgaveId") throw NoOppgaveException("Fant ikke oppgave") diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt index b31a3995..e559332e 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/NasjonalSykmeldingService.kt @@ -59,7 +59,7 @@ class NasjonalSykmeldingService( ) } - suspend fun sendPapirsykmelding(smRegistreringManuell: SmRegistreringManuell, navEnhet: String, callId: String, oppgaveId: Int): ResponseEntity { + suspend fun sendPapirsykmelding(smRegistreringManuell: SmRegistreringManuell, navEnhet: String, callId: String, oppgaveId: String): ResponseEntity { val oppgave = nasjonalOppgaveService.findByOppgaveId(oppgaveId) ?: return ResponseEntity(HttpStatus.NOT_FOUND) val sykmeldingId = oppgave.sykmeldingId log.info("Forsøker å ferdigstille papirsykmelding med sykmeldingId $sykmeldingId") @@ -85,21 +85,20 @@ class NasjonalSykmeldingService( val ferdigstillRegistrering = FerdigstillRegistrering( - oppgaveId = oppgaveId, + oppgaveId = oppgaveId.toInt(), journalpostId = journalpostId, dokumentInfoId = dokumentInfoId, pasientFnr = receivedSykmelding.personNrPasient, sykmeldingId = sykmeldingId, sykmelder = sykmelder, navEnhet = navEnhet, -// veileder = oppgaveSecurityService.getNavIdent(), veileder = Veileder(oppgaveSecurityService.getNavEmail()), avvist = false, oppgave = null, ) if (!validationResult.ruleHits.isWhitelisted()) { - return handleBrokenRule(validationResult, oppgaveId) + return handleBrokenRule(validationResult, oppgaveId.toInt()) } return handleOK(validationResult, receivedSykmelding.copy(validationResult = validationResult), ferdigstillRegistrering, loggingMeta, null) diff --git a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt index 7a6ebf00..c0f9a0b1 100644 --- a/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt +++ b/src/main/kotlin/no/nav/sykdig/digitalisering/papirsykmelding/api/NasjonalOppgaveController.kt @@ -56,7 +56,8 @@ class NasjonalOppgaveController( @PathVariable oppgaveId: String, @RequestHeader("Authorization") authorization: String, ): ResponseEntity { - val nasjonalOppgave = nasjonalOppgaveService.findByOppgaveId(oppgaveId.toInt()) + + val nasjonalOppgave = nasjonalOppgaveService.findByOppgaveId(oppgaveId) if (nasjonalOppgave != null) { log.info("papirsykmelding: henter oppgave med id $oppgaveId fra syk-dig-db") return ResponseEntity.ok(nasjonalOppgaveService.mapFromDao(nasjonalOppgave)) @@ -120,7 +121,7 @@ class NasjonalOppgaveController( @RequestBody papirSykmelding: SmRegistreringManuell, ): ResponseEntity { val callId = UUID.randomUUID().toString() - return nasjonalSykmeldingService.sendPapirsykmelding(papirSykmelding, navEnhet, callId, oppgaveId.toInt()) + return nasjonalSykmeldingService.sendPapirsykmelding(papirSykmelding, navEnhet, callId, oppgaveId) }