Skip to content

Commit

Permalink
Mer beskrivende dokumentbeskrivelse (#618)
Browse files Browse the repository at this point in the history
* dokumentbeskrivelse med tester

* lagt til tester

* tilKortFormat returnerer nå null for tom input
  • Loading branch information
Jesper-Hustad authored Jan 21, 2025
1 parent e478648 commit d04a01a
Show file tree
Hide file tree
Showing 8 changed files with 84 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ data class Sak(
val arkivsaksystem: String? = null,
)

fun mapOppdaterRequest(fnr: String): OppdaterJournalpostRequest =
fun mapOppdaterRequest(
fnr: String,
dokumentId: String,
dokumentTittel: String,
): OppdaterJournalpostRequest =
OppdaterJournalpostRequest(
bruker =
Bruker(
Expand All @@ -50,4 +54,5 @@ fun mapOppdaterRequest(fnr: String): OppdaterJournalpostRequest =
),
sak = Sak("GENERELL_SAK"),
tema = "SYK",
dokumenter = listOf(Dokument(dokumentId, dokumentTittel)),
)
14 changes: 14 additions & 0 deletions src/main/kotlin/no/nav/syfo/domain/Periode.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
package no.nav.syfo.domain

import java.time.LocalDate
import java.time.format.DateTimeFormatter

data class Periode(
val fom: LocalDate,
val tom: LocalDate,
)

val norskDatoFormat: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy")

fun LocalDate.tilNorskFormat(): String = format(norskDatoFormat)

fun List<Periode>.tilKortFormat(): String? =
if (isEmpty()) {
null
} else if (size == 1) {
"${first().fom.tilNorskFormat()} - ${first().tom.tilNorskFormat()}"
} else {
"${first().fom.tilNorskFormat()} - [...] - ${last().tom.tilNorskFormat()}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import no.nav.syfo.client.dokarkiv.DokArkivClient
import no.nav.syfo.client.dokarkiv.mapFeilregistrertRequest
import no.nav.syfo.client.dokarkiv.mapOppdaterRequest
import no.nav.syfo.domain.InngaendeJournalpost
import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
import no.nav.syfo.util.tilDokumentbeskrivelse

class BehandleInngaaendeJournalConsumer(
private val dokArkivClient: DokArkivClient,
Expand All @@ -15,16 +17,16 @@ class BehandleInngaaendeJournalConsumer(
*/

fun oppdaterJournalpost(
fnr: String,
inntektsmelding: Inntektsmelding,
inngaendeJournalpost: InngaendeJournalpost,
feilregistrert: Boolean,
) {
val journalpostId = inngaendeJournalpost.journalpostId
val req =
if (feilregistrert) {
mapFeilregistrertRequest(fnr, inngaendeJournalpost.dokumentId)
mapFeilregistrertRequest(inntektsmelding.fnr, inngaendeJournalpost.dokumentId)
} else {
mapOppdaterRequest(fnr)
mapOppdaterRequest(inntektsmelding.fnr, inngaendeJournalpost.dokumentId, inntektsmelding.tilDokumentbeskrivelse())
}
runBlocking {
dokArkivClient.oppdaterJournalpost(
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/no/nav/syfo/service/JournalpostService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class JournalpostService(

fun ferdigstillJournalpost(inntektsmelding: Inntektsmelding) {
val journalpost = hentInngaendeJournalpost(inntektsmelding)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding.fnr, journalpost, false)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding, journalpost, false)
behandleInngaaendeJournalConsumer.ferdigstillJournalpost(journalpost)
metrikk.tellInntektsmeldingerJournalfort()
}
Expand All @@ -37,7 +37,7 @@ class JournalpostService(

fun feilregistrerJournalpost(inntektsmelding: Inntektsmelding) {
val journalpost = hentInngaendeJournalpost(inntektsmelding)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding.fnr, journalpost, true)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding, journalpost, true)
behandleInngaaendeJournalConsumer.ferdigstillJournalpost(journalpost)
behandleInngaaendeJournalConsumer.feilregistrerJournalpost(inntektsmelding.journalpostId)
}
Expand Down
11 changes: 11 additions & 0 deletions src/main/kotlin/no/nav/syfo/util/DokumentbeskrivelseUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package no.nav.syfo.util

import no.nav.helsearbeidsgiver.utils.pipe.orDefault
import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
import no.nav.syfo.domain.tilKortFormat

fun Inntektsmelding.tilDokumentbeskrivelse(): String {
val orgnr = this.arbeidsgiverOrgnummer.let { if (it.isNullOrBlank()) "(ingen orgnr)" else it }
val agp = this.arbeidsgiverperioder.tilKortFormat().orDefault("(ingen agp)")
return "Inntektsmelding-$orgnr-$agp"
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class DokArkivClientTest {
fun `Skal oppdatere journalpost når man får status OK`() {
dokArkivClient = DokArkivClient("", buildHttpClientText(HttpStatusCode.OK), ::mockAccessToken)
runBlocking {
val req = mapOppdaterRequest("123")
val req = mapOppdaterRequest("123", "dok123", "nyDokumentTittel")
val resultat = dokArkivClient.oppdaterJournalpost("111", req, "")
assertEquals(HttpStatusCode.OK, resultat)
}
Expand All @@ -54,7 +54,7 @@ class DokArkivClientTest {
@Test
fun `Skal håndtere at oppdatering av journalpost feiler`() {
dokArkivClient = DokArkivClient("", buildHttpClientText(HttpStatusCode.InternalServerError, ""), ::mockAccessToken)
val req = mapOppdaterRequest("123")
val req = mapOppdaterRequest("123", "dok123", "nyDokumentTittel")
runBlocking {
assertThrows<Exception> {
dokArkivClient.oppdaterJournalpost("111", req, "")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package no.nav.syfo.service

import io.mockk.coVerifySequence
import io.mockk.mockk
import io.mockk.verify
import kotlinx.coroutines.runBlocking
import no.nav.syfo.client.dokarkiv.DokArkivClient
import no.nav.syfo.domain.InngaendeJournalpost
import no.nav.syfo.grunnleggendeInntektsmelding
import org.junit.jupiter.api.Test

class BehandleInngaaendeJournalConsumerTest {
Expand Down Expand Up @@ -40,11 +42,10 @@ class BehandleInngaaendeJournalConsumerTest {
dokumentId = "dokumentId",
journalpostId = "journalpostId",
)
behandleInngaaendeJournalConsumer.oppdaterJournalpost("fnr", inngaendeJournalpost, false)
verify {
runBlocking {
dokArkivClient.oppdaterJournalpost("journalpostId", any(), any())
}
val dokumentTittel = "Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019"
behandleInngaaendeJournalConsumer.oppdaterJournalpost(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = null), inngaendeJournalpost, false)
coVerifySequence {
dokArkivClient.oppdaterJournalpost("journalpostId", match { it.dokumenter!!.first().tittel == dokumentTittel }, any())
}
// TODO - Asserten under må virke
// assertThat(captor.captured.inngaaendeJournalpost.avsender.avsenderId).isEqualTo("10101033333")
Expand Down
38 changes: 38 additions & 0 deletions src/test/kotlin/no/nav/syfo/util/DokumentbeskrivelseUtilsTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package no.nav.syfo.util

import no.nav.syfo.grunnleggendeInntektsmelding
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test

class DokumentbeskrivelseUtilsTest {
@Test
fun `1 agp i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-01.01.2019 - 01.02.2019")
}

@Test
fun `2 agp i dokumentbeskrivelse`() {
val periode = grunnleggendeInntektsmelding.arbeidsgiverperioder.first()
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverperioder = listOf(periode, periode)).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-01.01.2019 - [...] - 01.02.2019")
}

@Test
fun `ingen agp i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverperioder = emptyList()).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-(ingen agp)")
}

@Test
fun `ingen orgnr i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = null).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019")
}

@Test
fun `tom string orgnr i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = "").tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019")
}
}

0 comments on commit d04a01a

Please sign in to comment.