diff --git a/.nais/naiserator-dev.yaml b/.nais/naiserator-dev.yaml index e7487364..988de261 100644 --- a/.nais/naiserator-dev.yaml +++ b/.nais/naiserator-dev.yaml @@ -96,6 +96,10 @@ spec: value: "dev-gcp.teamsykefravr.isarbeidsuforhet" - name: ARBEIDSUFORHETVURDERING_URL value: "http://isarbeidsuforhet" + - name: AKTIVITETSKRAV_CLIENT_ID + value: "dev-gcp.teamsykefravr.isaktivitetskrav" + - name: AKTIVITETSKRAV_URL + value: "http://isaktivitetskrav" - name: ISTILGANGSKONTROLL_CLIENT_ID value: "dev-gcp.teamsykefravr.istilgangskontroll" - name: ISTILGANGSKONTROLL_HOST diff --git a/.nais/naiserator-prod.yaml b/.nais/naiserator-prod.yaml index 07fc99d1..3ea19383 100644 --- a/.nais/naiserator-prod.yaml +++ b/.nais/naiserator-prod.yaml @@ -98,6 +98,10 @@ spec: value: "prod-gcp.teamsykefravr.isarbeidsuforhet" - name: ARBEIDSUFORHETVURDERING_URL value: "http://isarbeidsuforhet" + - name: AKTIVITETSKRAV_CLIENT_ID + value: "prod-gcp.teamsykefravr.isaktivitetskrav" + - name: AKTIVITETSKRAV_URL + value: "http://isaktivitetskrav" - name: ISTILGANGSKONTROLL_CLIENT_ID value: "prod-gcp.teamsykefravr.istilgangskontroll" - name: ISTILGANGSKONTROLL_HOST diff --git a/src/main/kotlin/no/nav/syfo/App.kt b/src/main/kotlin/no/nav/syfo/App.kt index 2923c55f..f359dda0 100644 --- a/src/main/kotlin/no/nav/syfo/App.kt +++ b/src/main/kotlin/no/nav/syfo/App.kt @@ -5,21 +5,22 @@ import io.ktor.server.application.* import io.ktor.server.config.* import io.ktor.server.engine.* import io.ktor.server.netty.* +import no.nav.syfo.application.cache.RedisStore +import no.nav.syfo.personstatus.PersonoversiktStatusService import no.nav.syfo.personstatus.api.v2.apiModule import no.nav.syfo.personstatus.api.v2.auth.getWellKnown -import no.nav.syfo.application.cache.RedisStore -import no.nav.syfo.personstatus.infrastructure.database.database -import no.nav.syfo.personstatus.infrastructure.database.databaseModule +import no.nav.syfo.personstatus.infrastructure.clients.AktivitetskravClient +import no.nav.syfo.personstatus.infrastructure.clients.arbeidsuforhet.ArbeidsuforhetvurderingClient +import no.nav.syfo.personstatus.infrastructure.clients.azuread.AzureAdClient import no.nav.syfo.personstatus.infrastructure.clients.behandlendeenhet.BehandlendeEnhetClient +import no.nav.syfo.personstatus.infrastructure.clients.oppfolgingsoppgave.OppfolgingsoppgaveClient import no.nav.syfo.personstatus.infrastructure.clients.pdl.PdlClient import no.nav.syfo.personstatus.infrastructure.cronjob.behandlendeenhet.PersonBehandlendeEnhetService import no.nav.syfo.personstatus.infrastructure.cronjob.launchCronjobModule -import no.nav.syfo.personstatus.infrastructure.kafka.launchKafkaModule -import no.nav.syfo.personstatus.PersonoversiktStatusService -import no.nav.syfo.personstatus.infrastructure.clients.arbeidsuforhet.ArbeidsuforhetvurderingClient -import no.nav.syfo.personstatus.infrastructure.clients.azuread.AzureAdClient -import no.nav.syfo.personstatus.infrastructure.clients.oppfolgingsoppgave.OppfolgingsoppgaveClient +import no.nav.syfo.personstatus.infrastructure.database.database +import no.nav.syfo.personstatus.infrastructure.database.databaseModule import no.nav.syfo.personstatus.infrastructure.database.repository.PersonOversiktStatusRepository +import no.nav.syfo.personstatus.infrastructure.kafka.launchKafkaModule import org.slf4j.LoggerFactory import java.util.concurrent.TimeUnit @@ -60,6 +61,10 @@ fun main() { azureAdClient = azureAdClient, clientEnvironment = environment.clients.ishuskelapp, ) + val aktivitetskravClient = AktivitetskravClient( + azureAdClient = azureAdClient, + clientEnvironment = environment.clients.aktivitetskrav, + ) lateinit var personBehandlendeEnhetService: PersonBehandlendeEnhetService lateinit var personoversiktStatusService: PersonoversiktStatusService @@ -83,6 +88,7 @@ fun main() { arbeidsuforhetvurderingClient = arbeidsuforhetvurderingClient, personoversiktStatusRepository = personoversiktStatusRepository, oppfolgingsoppgaveClient = oppfolgingsoppgaveClient, + aktivitetskravClient = aktivitetskravClient, ) personBehandlendeEnhetService = PersonBehandlendeEnhetService( database = database, diff --git a/src/main/kotlin/no/nav/syfo/ApplicationEnvironment.kt b/src/main/kotlin/no/nav/syfo/ApplicationEnvironment.kt index 5c4a2458..2e0d5b6a 100644 --- a/src/main/kotlin/no/nav/syfo/ApplicationEnvironment.kt +++ b/src/main/kotlin/no/nav/syfo/ApplicationEnvironment.kt @@ -70,6 +70,10 @@ data class Environment( baseUrl = getEnvVar("ISHUSKELAPP_URL"), clientId = getEnvVar("ISHUSKELAPP_CLIENT_ID"), ), + aktivitetskrav = ClientEnvironment( + baseUrl = getEnvVar("AKTIVITETSKRAV_URL"), + clientId = getEnvVar("AKTIVITETSKRAV_CLIENT_ID"), + ), ), val redis: RedisEnvironment = RedisEnvironment( diff --git a/src/main/kotlin/no/nav/syfo/personstatus/PersonoversiktStatusService.kt b/src/main/kotlin/no/nav/syfo/personstatus/PersonoversiktStatusService.kt index 1178afc1..1adc0656 100644 --- a/src/main/kotlin/no/nav/syfo/personstatus/PersonoversiktStatusService.kt +++ b/src/main/kotlin/no/nav/syfo/personstatus/PersonoversiktStatusService.kt @@ -10,6 +10,8 @@ import no.nav.syfo.domain.PersonIdent import no.nav.syfo.oppfolgingstilfelle.domain.PersonOppfolgingstilfelleVirksomhet import no.nav.syfo.personoppgavehendelse.kafka.* import no.nav.syfo.personstatus.api.v2.model.PersonOversiktStatusDTO +import no.nav.syfo.personstatus.application.GetAktivitetskravForPersonsResponseDTO +import no.nav.syfo.personstatus.application.IAktivitetskravClient import no.nav.syfo.personstatus.application.IPersonOversiktStatusRepository import no.nav.syfo.personstatus.application.arbeidsuforhet.ArbeidsuforhetvurderingerResponseDTO import no.nav.syfo.personstatus.application.arbeidsuforhet.IArbeidsuforhetvurderingClient @@ -25,8 +27,9 @@ class PersonoversiktStatusService( private val database: DatabaseInterface, private val pdlClient: PdlClient, private val arbeidsuforhetvurderingClient: IArbeidsuforhetvurderingClient, - private val personoversiktStatusRepository: IPersonOversiktStatusRepository, + private val aktivitetskravClient: IAktivitetskravClient, private val oppfolgingsoppgaveClient: IOppfolgingsoppgaveClient, + private val personoversiktStatusRepository: IPersonOversiktStatusRepository, ) { private val isUbehandlet = true private val isBehandlet = false @@ -69,6 +72,11 @@ class PersonoversiktStatusService( token = token, personStatuser = personStatusOversikt, ) + val activeAktivitetskrav = getActiveAktivitetskravForPersons( + callId = callId, + token = token, + personStatuser = personStatusOversikt, + ) return personStatusOversikt.map { personStatus -> personStatus.toPersonOversiktStatusDTO( @@ -79,6 +87,9 @@ class PersonoversiktStatusService( oppfolgingsoppgave = activeOppfolgingsoppgaver.await() ?.oppfolgingsoppgaver ?.get(personStatus.fnr), + aktivitetskravvurdering = activeAktivitetskrav.await() + ?.aktivitetskravvurderinger + ?.get(personStatus.fnr), ) } } @@ -127,6 +138,26 @@ class PersonoversiktStatusService( } } + private suspend fun getActiveAktivitetskravForPersons( + callId: String, + token: String, + personStatuser: List, + ): Deferred = + CoroutineScope(Dispatchers.IO).async { + val personidenterWithActiveAktivitetskrav = personStatuser + .filter { it.isAktivAktivitetskravvurdering } + .map { PersonIdent(it.fnr) } + if (personidenterWithActiveAktivitetskrav.isNotEmpty()) { + aktivitetskravClient.getAktivitetskravForPersons( + callId = callId, + token = token, + personidenter = personidenterWithActiveAktivitetskrav, + ) + } else { + null + } + } + private fun getPersonOppfolgingstilfelleVirksomhetMap( pPersonOversikStatusIds: List, ): Map> = diff --git a/src/main/kotlin/no/nav/syfo/personstatus/api/v2/model/PersonOversiktStatusDTO.kt b/src/main/kotlin/no/nav/syfo/personstatus/api/v2/model/PersonOversiktStatusDTO.kt index d19387c1..34d1fcef 100644 --- a/src/main/kotlin/no/nav/syfo/personstatus/api/v2/model/PersonOversiktStatusDTO.kt +++ b/src/main/kotlin/no/nav/syfo/personstatus/api/v2/model/PersonOversiktStatusDTO.kt @@ -1,5 +1,6 @@ package no.nav.syfo.personstatus.api.v2.model +import no.nav.syfo.personstatus.application.AktivitetskravDTO import no.nav.syfo.personstatus.application.arbeidsuforhet.ArbeidsuforhetvurderingDTO import no.nav.syfo.personstatus.application.oppfolgingsoppgave.OppfolgingsoppgaveDTO import java.time.LocalDate @@ -25,6 +26,7 @@ data class PersonOversiktStatusDTO( val friskmeldingTilArbeidsformidlingFom: LocalDate?, val oppfolgingsoppgave: OppfolgingsoppgaveDTO?, val isAktivSenOppfolgingKandidat: Boolean, + val aktivitetskravvurdering: AktivitetskravDTO?, ) data class PersonOppfolgingstilfelleDTO( diff --git a/src/main/kotlin/no/nav/syfo/personstatus/application/AktivitetskravDTO.kt b/src/main/kotlin/no/nav/syfo/personstatus/application/AktivitetskravDTO.kt new file mode 100644 index 00000000..992bb1b7 --- /dev/null +++ b/src/main/kotlin/no/nav/syfo/personstatus/application/AktivitetskravDTO.kt @@ -0,0 +1,45 @@ +package no.nav.syfo.personstatus.application + +import java.time.LocalDate +import java.time.LocalDateTime + +data class AktivitetskravRequestDTO( + val personidenter: List, +) + +data class GetAktivitetskravForPersonsResponseDTO( + val aktivitetskravvurderinger: Map, +) + +data class AktivitetskravDTO( + val uuid: String, + val createdAt: LocalDateTime, + val status: AktivitetskravStatus, + val vurderinger: List, +) + +data class AktivitetskravvurderingDTO( + val createdAt: LocalDateTime, + val status: AktivitetskravStatus, + val frist: LocalDate?, + val varsel: AktivitetskravVarselDTO?, +) + +data class AktivitetskravVarselDTO( + val createdAt: LocalDateTime, + val svarfrist: LocalDate, +) + +enum class AktivitetskravStatus { + NY, + NY_VURDERING, + AVVENT, + UNNTAK, + OPPFYLT, + AUTOMATISK_OPPFYLT, + FORHANDSVARSEL, + STANS, + IKKE_OPPFYLT, + IKKE_AKTUELL, + LUKKET, +} diff --git a/src/main/kotlin/no/nav/syfo/personstatus/application/IAktivitetskravClient.kt b/src/main/kotlin/no/nav/syfo/personstatus/application/IAktivitetskravClient.kt new file mode 100644 index 00000000..81d8f148 --- /dev/null +++ b/src/main/kotlin/no/nav/syfo/personstatus/application/IAktivitetskravClient.kt @@ -0,0 +1,11 @@ +package no.nav.syfo.personstatus.application + +import no.nav.syfo.domain.PersonIdent + +interface IAktivitetskravClient { + suspend fun getAktivitetskravForPersons( + callId: String, + token: String, + personidenter: List, + ): GetAktivitetskravForPersonsResponseDTO? +} diff --git a/src/main/kotlin/no/nav/syfo/personstatus/domain/PersonOversiktStatus.kt b/src/main/kotlin/no/nav/syfo/personstatus/domain/PersonOversiktStatus.kt index d2b45b5f..9b643b7b 100644 --- a/src/main/kotlin/no/nav/syfo/personstatus/domain/PersonOversiktStatus.kt +++ b/src/main/kotlin/no/nav/syfo/personstatus/domain/PersonOversiktStatus.kt @@ -5,6 +5,7 @@ import no.nav.syfo.dialogmotestatusendring.domain.DialogmoteStatusendringType import no.nav.syfo.oppfolgingstilfelle.domain.Oppfolgingstilfelle import no.nav.syfo.oppfolgingstilfelle.domain.toPersonOppfolgingstilfelleDTO import no.nav.syfo.personstatus.api.v2.model.PersonOversiktStatusDTO +import no.nav.syfo.personstatus.application.AktivitetskravDTO import no.nav.syfo.personstatus.application.arbeidsuforhet.ArbeidsuforhetvurderingDTO import no.nav.syfo.personstatus.application.oppfolgingsoppgave.OppfolgingsoppgaveDTO import no.nav.syfo.util.isBeforeOrEqual @@ -96,6 +97,7 @@ fun PersonOversiktStatus.toPersonOversiktStatusDTO( arenaCutoff: LocalDate, arbeidsuforhetvurdering: ArbeidsuforhetvurderingDTO?, oppfolgingsoppgave: OppfolgingsoppgaveDTO?, + aktivitetskravvurdering: AktivitetskravDTO?, ) = PersonOversiktStatusDTO( veilederIdent = veilederIdent, @@ -118,6 +120,7 @@ fun PersonOversiktStatus.toPersonOversiktStatusDTO( friskmeldingTilArbeidsformidlingFom = friskmeldingTilArbeidsformidlingFom, oppfolgingsoppgave = oppfolgingsoppgave, isAktivSenOppfolgingKandidat = isAktivSenOppfolgingKandidat, + aktivitetskravvurdering = aktivitetskravvurdering, ) fun PersonOversiktStatus.hasActiveBehandlerdialogOppgave(): Boolean { diff --git a/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/AktivitetskravClient.kt b/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/AktivitetskravClient.kt new file mode 100644 index 00000000..c895dd56 --- /dev/null +++ b/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/AktivitetskravClient.kt @@ -0,0 +1,85 @@ +package no.nav.syfo.personstatus.infrastructure.clients + +import io.ktor.client.call.body +import io.ktor.client.plugins.ClientRequestException +import io.ktor.client.plugins.ServerResponseException +import io.ktor.client.request.accept +import io.ktor.client.request.header +import io.ktor.client.request.post +import io.ktor.client.request.setBody +import io.ktor.client.statement.HttpResponse +import io.ktor.http.* +import net.logstash.logback.argument.StructuredArguments +import no.nav.syfo.domain.PersonIdent +import no.nav.syfo.personstatus.application.AktivitetskravRequestDTO +import no.nav.syfo.personstatus.application.GetAktivitetskravForPersonsResponseDTO +import no.nav.syfo.personstatus.application.IAktivitetskravClient +import no.nav.syfo.personstatus.infrastructure.clients.azuread.AzureAdClient +import no.nav.syfo.util.NAV_CALL_ID_HEADER +import no.nav.syfo.util.bearerHeader +import no.nav.syfo.util.callIdArgument +import org.slf4j.LoggerFactory + +class AktivitetskravClient( + private val azureAdClient: AzureAdClient, + private val clientEnvironment: ClientEnvironment, +) : IAktivitetskravClient { + + private val httpClient = httpClientDefault() + + override suspend fun getAktivitetskravForPersons( + callId: String, + token: String, + personidenter: List, + ): GetAktivitetskravForPersonsResponseDTO? { + val oboToken = azureAdClient.getOnBehalfOfToken( + scopeClientId = clientEnvironment.clientId, + token, + )?.accessToken ?: throw RuntimeException("Failed to get OBO-token for aktivitetskrav vurdering") + val requestDTO = AktivitetskravRequestDTO(personidenter.map { it.value }) + return try { + val response = httpClient.post("$ISAKTIVITETSKRAV_BASE_PATH/get-vurderinger") { + header(HttpHeaders.Authorization, bearerHeader(oboToken)) + header(NAV_CALL_ID_HEADER, callId) + accept(ContentType.Application.Json) + contentType(ContentType.Application.Json) + setBody(requestDTO) + } + when (response.status) { + HttpStatusCode.OK -> { + response.body() + } + HttpStatusCode.NotFound -> { + log.error("Resource not found") + null + } + else -> { + log.error("Unhandled status code: ${response.status}") + null + } + } + } catch (e: ClientRequestException) { + handleUnexpectedResponseException(e.response, callId) + throw e + } catch (e: ServerResponseException) { + handleUnexpectedResponseException(e.response, callId) + throw e + } + } + + private fun handleUnexpectedResponseException( + response: HttpResponse, + callId: String, + ) { + log.error( + "Error while requesting from isaktivitetskrav with {}, {}", + StructuredArguments.keyValue("statusCode", response.status.value.toString()), + callIdArgument(callId) + ) + } + + companion object { + private const val ISAKTIVITETSKRAV_BASE_PATH = "/api/internad/v1/aktivitetskrav" + private val log = LoggerFactory.getLogger(AktivitetskravClient::class.java) + } +} diff --git a/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/ClientEnvironment.kt b/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/ClientEnvironment.kt index ce218a70..afe5447b 100644 --- a/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/ClientEnvironment.kt +++ b/src/main/kotlin/no/nav/syfo/personstatus/infrastructure/clients/ClientEnvironment.kt @@ -5,6 +5,7 @@ data class ClientsEnvironment( val pdl: ClientEnvironment, val syfobehandlendeenhet: ClientEnvironment, val arbeidsuforhetvurdering: ClientEnvironment, + val aktivitetskrav: ClientEnvironment, val istilgangskontroll: ClientEnvironment, val ishuskelapp: ClientEnvironment, ) diff --git a/src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/KafkaAktivitetskravVurderingConsumerSpek.kt b/src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/AktivitetskravVurderingConsumerSpek.kt similarity index 97% rename from src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/KafkaAktivitetskravVurderingConsumerSpek.kt rename to src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/AktivitetskravVurderingConsumerSpek.kt index fa96a20e..f97c000f 100644 --- a/src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/KafkaAktivitetskravVurderingConsumerSpek.kt +++ b/src/test/kotlin/no/nav/syfo/aktivitetskravvurdering/kafka/AktivitetskravVurderingConsumerSpek.kt @@ -5,6 +5,7 @@ import io.mockk.* import no.nav.syfo.aktivitetskravvurdering.domain.AktivitetskravStatus import no.nav.syfo.oppfolgingstilfelle.kafka.toPersonOversiktStatus import no.nav.syfo.personstatus.PersonoversiktStatusService +import no.nav.syfo.personstatus.application.IAktivitetskravClient import no.nav.syfo.personstatus.application.arbeidsuforhet.IArbeidsuforhetvurderingClient import no.nav.syfo.personstatus.application.oppfolgingsoppgave.IOppfolgingsoppgaveClient import no.nav.syfo.personstatus.db.* @@ -18,7 +19,7 @@ import org.spekframework.spek2.Spek import org.spekframework.spek2.style.specification.describe import java.time.* -class KafkaAktivitetskravVurderingConsumerSpek : Spek({ +class AktivitetskravVurderingConsumerSpek : Spek({ with(TestApplicationEngine()) { start() @@ -30,9 +31,10 @@ class KafkaAktivitetskravVurderingConsumerSpek : Spek({ val personoversiktStatusService = PersonoversiktStatusService( database = database, pdlClient = externalMockEnvironment.pdlClient, - arbeidsuforhetvurderingClient = mockk(), personoversiktStatusRepository = personOppgaveRepository, + arbeidsuforhetvurderingClient = mockk(), oppfolgingsoppgaveClient = mockk(), + aktivitetskravClient = mockk(), ) val aktivitetskravVurderingConsumer = AktivitetskravVurderingConsumer(database = database, personoversiktStatusService = personoversiktStatusService) diff --git a/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/ArbeidsuforhetvurderingConsumerSpek.kt b/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/ArbeidsuforhetvurderingConsumerSpek.kt index c8a16336..3e400f1f 100644 --- a/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/ArbeidsuforhetvurderingConsumerSpek.kt +++ b/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/ArbeidsuforhetvurderingConsumerSpek.kt @@ -6,6 +6,7 @@ import io.mockk.every import io.mockk.mockk import no.nav.syfo.domain.PersonIdent import no.nav.syfo.personstatus.PersonoversiktStatusService +import no.nav.syfo.personstatus.application.IAktivitetskravClient import no.nav.syfo.personstatus.application.arbeidsuforhet.IArbeidsuforhetvurderingClient import no.nav.syfo.personstatus.application.oppfolgingsoppgave.IOppfolgingsoppgaveClient import no.nav.syfo.personstatus.db.createPersonOversiktStatus @@ -38,6 +39,7 @@ class ArbeidsuforhetvurderingConsumerSpek : Spek({ arbeidsuforhetvurderingClient = arbeidsuforhervurderingClient, personoversiktStatusRepository = personOppgaveRepository, oppfolgingsoppgaveClient = oppfolgingsoppgaveClient, + aktivitetskravClient = mockk(), ) val arbeidsuforhetvurderingConsumer = ArbeidsuforhetvurderingConsumer( diff --git a/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/meroppfolging/SenOppfolgingKandidatStatusConsumerSpek.kt b/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/meroppfolging/SenOppfolgingKandidatStatusConsumerSpek.kt index e67783ab..23fce4bf 100644 --- a/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/meroppfolging/SenOppfolgingKandidatStatusConsumerSpek.kt +++ b/src/test/kotlin/no/nav/syfo/personstatus/infrastructure/kafka/meroppfolging/SenOppfolgingKandidatStatusConsumerSpek.kt @@ -5,6 +5,7 @@ import io.mockk.every import io.mockk.mockk import io.mockk.verify import no.nav.syfo.personstatus.PersonoversiktStatusService +import no.nav.syfo.personstatus.application.IAktivitetskravClient import no.nav.syfo.personstatus.application.arbeidsuforhet.IArbeidsuforhetvurderingClient import no.nav.syfo.personstatus.application.oppfolgingsoppgave.IOppfolgingsoppgaveClient import no.nav.syfo.personstatus.db.createPersonOversiktStatus @@ -32,8 +33,9 @@ class SenOppfolgingKandidatStatusConsumerSpek : Spek({ database = database, pdlClient = externalMockEnvironment.pdlClient, arbeidsuforhetvurderingClient = mockk(), - personoversiktStatusRepository = personOppgaveRepository, oppfolgingsoppgaveClient = mockk(), + aktivitetskravClient = mockk(), + personoversiktStatusRepository = personOppgaveRepository, ) val senOppfolgingKandidatStatusConsumer = SenOppfolgingKandidatStatusConsumer( diff --git a/src/test/kotlin/no/nav/syfo/testutil/InternalMockEnvironment.kt b/src/test/kotlin/no/nav/syfo/testutil/InternalMockEnvironment.kt index 87ff38ca..1b0e3cbc 100644 --- a/src/test/kotlin/no/nav/syfo/testutil/InternalMockEnvironment.kt +++ b/src/test/kotlin/no/nav/syfo/testutil/InternalMockEnvironment.kt @@ -9,6 +9,7 @@ import no.nav.syfo.personstatus.infrastructure.cronjob.behandlendeenhet.PersonBe import no.nav.syfo.personstatus.infrastructure.cronjob.virksomhetsnavn.PersonOppfolgingstilfelleVirksomhetnavnCronjob import no.nav.syfo.personstatus.infrastructure.cronjob.virksomhetsnavn.PersonOppfolgingstilfelleVirksomhetsnavnService import no.nav.syfo.personstatus.PersonoversiktStatusService +import no.nav.syfo.personstatus.infrastructure.clients.AktivitetskravClient import no.nav.syfo.personstatus.infrastructure.clients.arbeidsuforhet.ArbeidsuforhetvurderingClient import no.nav.syfo.personstatus.infrastructure.clients.azuread.AzureAdClient import no.nav.syfo.personstatus.infrastructure.clients.oppfolgingsoppgave.OppfolgingsoppgaveClient @@ -42,6 +43,10 @@ class InternalMockEnvironment private constructor() { azureAdClient = azureAdClient, clientEnvironment = environment.clients.ishuskelapp, ) + private val aktivitetskravClient = AktivitetskravClient( + azureAdClient = azureAdClient, + clientEnvironment = environment.clients.aktivitetskrav, + ) private val eregClient = EregClient( clientEnvironment = environment.clients.ereg, redisStore = redisStore, @@ -70,6 +75,7 @@ class InternalMockEnvironment private constructor() { arbeidsuforhetvurderingClient = arbeidsuforhetvurderingClient, personoversiktStatusRepository = personoversiktRepository, oppfolgingsoppgaveClient = oppfolgingsoppgaveClient, + aktivitetskravClient = aktivitetskravClient, ) companion object { diff --git a/src/test/kotlin/no/nav/syfo/testutil/TestApiModule.kt b/src/test/kotlin/no/nav/syfo/testutil/TestApiModule.kt index f8635c1a..eecd1d75 100644 --- a/src/test/kotlin/no/nav/syfo/testutil/TestApiModule.kt +++ b/src/test/kotlin/no/nav/syfo/testutil/TestApiModule.kt @@ -5,13 +5,14 @@ import no.nav.syfo.application.cache.RedisStore import no.nav.syfo.personstatus.infrastructure.clients.pdl.PdlClient import no.nav.syfo.personstatus.PersonoversiktStatusService import no.nav.syfo.personstatus.api.v2.apiModule +import no.nav.syfo.personstatus.infrastructure.clients.AktivitetskravClient import no.nav.syfo.personstatus.infrastructure.clients.arbeidsuforhet.ArbeidsuforhetvurderingClient import no.nav.syfo.personstatus.infrastructure.clients.oppfolgingsoppgave.OppfolgingsoppgaveClient import no.nav.syfo.personstatus.infrastructure.clients.azuread.AzureAdClient import no.nav.syfo.personstatus.infrastructure.database.repository.PersonOversiktStatusRepository fun Application.testApiModule( - externalMockEnvironment: ExternalMockEnvironment + externalMockEnvironment: ExternalMockEnvironment, ) { val redisStore = RedisStore(externalMockEnvironment.environment.redis) val azureAdClient = AzureAdClient( @@ -31,6 +32,10 @@ fun Application.testApiModule( azureAdClient = azureAdClient, clientEnvironment = externalMockEnvironment.environment.clients.ishuskelapp, ) + val aktivitetskravClient = AktivitetskravClient( + azureAdClient = azureAdClient, + clientEnvironment = externalMockEnvironment.environment.clients.aktivitetskrav, + ) val personoversiktRepository = PersonOversiktStatusRepository(database = externalMockEnvironment.database) val personoversiktStatusService = PersonoversiktStatusService( database = externalMockEnvironment.database, @@ -38,6 +43,7 @@ fun Application.testApiModule( personoversiktStatusRepository = personoversiktRepository, arbeidsuforhetvurderingClient = arbeidsuforhetvurderingClient, oppfolgingsoppgaveClient = oppfolgingsoppgaveClient, + aktivitetskravClient = aktivitetskravClient, ) this.apiModule( diff --git a/src/test/kotlin/no/nav/syfo/testutil/TestEnvironment.kt b/src/test/kotlin/no/nav/syfo/testutil/TestEnvironment.kt index 69404857..f4c831b0 100644 --- a/src/test/kotlin/no/nav/syfo/testutil/TestEnvironment.kt +++ b/src/test/kotlin/no/nav/syfo/testutil/TestEnvironment.kt @@ -19,6 +19,7 @@ fun testEnvironment( pdlUrl: String, syfobehandlendeenhetUrl: String = "syfobehandlendeenhet", arbeidsuforhetvurderingUrl: String = "arbeidsuforhetvurdering", + isaktivitetskravUrl: String = "isaktivitetskrav", istilgangskontrollUrl: String = "istilgangskontroll", ishuskelappUrl: String = "ishuskelapp", ) = Environment( @@ -65,6 +66,10 @@ fun testEnvironment( baseUrl = arbeidsuforhetvurderingUrl, clientId = "dev-gcp.teamsykefravr.arbeidsuforhetvurdering", ), + aktivitetskrav = ClientEnvironment( + baseUrl = isaktivitetskravUrl, + clientId = "dev-gcp.teamsykefravr.isaktivitetskrav", + ), istilgangskontroll = ClientEnvironment( baseUrl = istilgangskontrollUrl, clientId = "dev-gcp.teamsykefravr.istilgangskontroll",