Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flytter saksdetaljer-URL til sak/{fiksDigisosId}/detaljer #872

Merged
merged 3 commits into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.sosialhjelp.innsyn.saksoversikt

import jakarta.validation.constraints.NotBlank
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.slf4j.MDCContext
import kotlinx.coroutines.withContext
Expand All @@ -20,7 +21,9 @@ import no.nav.sosialhjelp.innsyn.utils.IntegrationUtils.SELVBETJENING
import no.nav.sosialhjelp.innsyn.utils.logger
import org.springframework.http.HttpHeaders
import org.springframework.http.ResponseEntity
import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestHeader
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
Expand Down Expand Up @@ -56,39 +59,40 @@ class SaksOversiktController(
}
}

@GetMapping("/saksDetaljer")
fun hentSaksDetaljer(
@RequestParam id: String,
@GetMapping("/sak/{fiksDigisosId}/detaljer")
fun getSaksDetaljer(
@PathVariable fiksDigisosId: String,
@RequestHeader(value = HttpHeaders.AUTHORIZATION) token: String,
): ResponseEntity<SaksDetaljerResponse> =
): SaksDetaljerResponse =
runBlocking {
withContext(MDCContext() + RequestAttributesContext()) {
tilgangskontroll.sjekkTilgang(token)

if (id.isEmpty()) {
return@withContext ResponseEntity.noContent().build()
}
val sak = fiksClient.hentDigisosSak(id, token)
val sak = fiksClient.hentDigisosSak(fiksDigisosId, token)
val model = eventService.createSaksoversiktModel(sak, token)
val antallOppgaver =
hentAntallNyeOppgaver(model, sak.fiksDigisosId, token) +
hentAntallNyeVilkarOgDokumentasjonkrav(model, sak.fiksDigisosId, token)
val saksDetaljerResponse =
SaksDetaljerResponse(
sak.fiksDigisosId,
hentNavn(model),
model.status.name,
antallOppgaver,
)
ResponseEntity.ok().body(saksDetaljerResponse)

SaksDetaljerResponse(
sak.fiksDigisosId,
hentNavn(model),
model.status.name,
antallOppgaver,
)
}
}

private fun hentNavn(model: InternalDigisosSoker): String {
return model.saker.filter { SaksStatus.FEILREGISTRERT != it.saksStatus }.joinToString {
it.tittel ?: DEFAULT_SAK_TITTEL
}
}
@Validated
@Deprecated("Bruk /sak/:fiksDigisosId/detaljer")
@GetMapping("/saksDetaljer")
fun hentSaksDetaljer(
@RequestParam @NotBlank id: String,
@RequestHeader(value = HttpHeaders.AUTHORIZATION) token: String,
): SaksDetaljerResponse = getSaksDetaljer(id, token)

private fun hentNavn(model: InternalDigisosSoker): String =
model.saker.filter { SaksStatus.FEILREGISTRERT != it.saksStatus }.joinToString { it.tittel ?: DEFAULT_SAK_TITTEL }

private suspend fun hentAntallNyeVilkarOgDokumentasjonkrav(
model: InternalDigisosSoker,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,22 +134,18 @@ internal class SaksOversiktControllerTest {
every { model1.utbetalinger } returns mutableListOf()
every { model2.utbetalinger } returns mutableListOf()

val response1 = controller.hentSaksDetaljer("123", "token")
val sak1 = response1.body
val sak1 = controller.getSaksDetaljer("123", "token")

assertThat(response1.statusCode).isEqualTo(HttpStatus.OK)
assertThat(sak1).isNotNull
assertThat(sak1?.soknadTittel).isEqualTo("")
assertThat(sak1?.antallNyeOppgaver).isEqualTo(6)
assertThat(sak1.soknadTittel).isEqualTo("")
assertThat(sak1.antallNyeOppgaver).isEqualTo(6)

val response2 = controller.hentSaksDetaljer("456", "token")
val sak2 = response2.body
val sak2 = controller.getSaksDetaljer("456", "token")

assertThat(response2.statusCode).isEqualTo(HttpStatus.OK)
assertThat(sak2).isNotNull
assertThat(sak2?.soknadTittel).contains("Livsopphold", "Strøm")
assertThat(sak2?.status).isEqualTo("UNDER_BEHANDLING")
assertThat(sak2?.antallNyeOppgaver).isEqualTo(3)
assertThat(sak2.soknadTittel).contains("Livsopphold", "Strøm")
assertThat(sak2.status).isEqualTo("UNDER_BEHANDLING")
assertThat(sak2.antallNyeOppgaver).isEqualTo(3)
}

@Test
Expand All @@ -165,14 +161,12 @@ internal class SaksOversiktControllerTest {
every { model1.saker } returns mutableListOf()
every { model1.utbetalinger } returns mutableListOf()

val response = controller.hentSaksDetaljer(digisosSak1.fiksDigisosId, "token")
val sak = response.body
val sak = controller.getSaksDetaljer(digisosSak1.fiksDigisosId, "token")

assertThat(sak).isNotNull
assertThat(response.statusCode).isEqualTo(HttpStatus.OK)

verify { oppgaveService wasNot Called }

assertThat(sak?.antallNyeOppgaver).isEqualTo(0)
assertThat(sak.antallNyeOppgaver).isEqualTo(0)
}
}
Loading