diff --git a/src/main/kotlin/no/nav/familie/ef/sak/fagsak/FagsakPersonService.kt b/src/main/kotlin/no/nav/familie/ef/sak/fagsak/FagsakPersonService.kt index 77cfe831c9..b3ba789601 100644 --- a/src/main/kotlin/no/nav/familie/ef/sak/fagsak/FagsakPersonService.kt +++ b/src/main/kotlin/no/nav/familie/ef/sak/fagsak/FagsakPersonService.kt @@ -4,13 +4,15 @@ import no.nav.familie.ef.sak.fagsak.domain.FagsakPerson import no.nav.familie.ef.sak.fagsak.domain.PersonIdent import no.nav.familie.ef.sak.infrastruktur.exception.feilHvis import no.nav.familie.ef.sak.infrastruktur.exception.feilHvisIkke +import no.nav.familie.ef.sak.minside.MikrofrontendEnableBrukereTask import no.nav.familie.ef.sak.repository.findByIdOrThrow +import no.nav.familie.prosessering.internal.TaskService import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional import java.util.UUID @Service -class FagsakPersonService(private val fagsakPersonRepository: FagsakPersonRepository) { +class FagsakPersonService(private val fagsakPersonRepository: FagsakPersonRepository, private val taskService: TaskService) { fun hentPerson(personId: UUID): FagsakPerson = fagsakPersonRepository.findByIdOrThrow(personId) @@ -31,19 +33,26 @@ class FagsakPersonService(private val fagsakPersonRepository: FagsakPersonReposi feilHvisIkke(personIdenter.contains(gjeldendePersonIdent)) { "Liste med personidenter inneholder ikke gjeldende personident" } - return ( // TODO : Lag task som sender over til minside kafka-kø (ved insert) + return ( fagsakPersonRepository.findByIdent(personIdenter) - ?: fagsakPersonRepository.insert(FagsakPerson(identer = setOf(PersonIdent(gjeldendePersonIdent)))) + ?: opprettFagsakPersonOgAktiverForMinSide(gjeldendePersonIdent) ) } @Transactional fun oppdaterIdent(fagsakPerson: FagsakPerson, gjeldendePersonIdent: String): FagsakPerson { - return if (fagsakPerson.hentAktivIdent() != gjeldendePersonIdent) { - fagsakPersonRepository.update(fagsakPerson.medOppdatertGjeldendeIdent(gjeldendePersonIdent)) - // TODO : Lag task som sender over til minside kafka-kø + if (fagsakPerson.hentAktivIdent() != gjeldendePersonIdent) { + val oppdatertFagsakPerson = fagsakPerson.medOppdatertGjeldendeIdent(gjeldendePersonIdent) + taskService.save(MikrofrontendEnableBrukereTask.opprettTask(oppdatertFagsakPerson)) + return fagsakPersonRepository.update(oppdatertFagsakPerson) } else { - fagsakPerson + return fagsakPerson } } + + fun opprettFagsakPersonOgAktiverForMinSide(gjeldendePersonIdent: String): FagsakPerson { + val fagsakPerson = fagsakPersonRepository.insert(FagsakPerson(identer = setOf(PersonIdent(gjeldendePersonIdent)))) + taskService.save(MikrofrontendEnableBrukereTask.opprettTask(fagsakPerson)) + return fagsakPerson + } } diff --git a/src/main/kotlin/no/nav/familie/ef/sak/forvaltning/MinsideForvaltningsController.kt b/src/main/kotlin/no/nav/familie/ef/sak/forvaltning/MinsideForvaltningsController.kt index a33a9f251c..90c8397dfd 100644 --- a/src/main/kotlin/no/nav/familie/ef/sak/forvaltning/MinsideForvaltningsController.kt +++ b/src/main/kotlin/no/nav/familie/ef/sak/forvaltning/MinsideForvaltningsController.kt @@ -41,7 +41,7 @@ class MinsideForvaltningsController( @PostMapping("aktiver-alle") fun aktiverAllePersonerForMinSide() { feilHvisIkke(erUtviklerMedVeilderrolle()) { "Kan kun kjøres av utvikler med veilederrolle" } - fagsakPersonRepository.findAll().chunked(500) + fagsakPersonRepository.findAll().chunked(250) .forEach { fagsakPersoner -> val task = MikrofrontendEnableBrukereTask.opprettTask(fagsakPersoner) taskService.save(task) diff --git a/src/main/kotlin/no/nav/familie/ef/sak/minside/MikrofrontendEnableBrukereTask.kt b/src/main/kotlin/no/nav/familie/ef/sak/minside/MikrofrontendEnableBrukereTask.kt index 3d6a106d50..e22dec0a76 100644 --- a/src/main/kotlin/no/nav/familie/ef/sak/minside/MikrofrontendEnableBrukereTask.kt +++ b/src/main/kotlin/no/nav/familie/ef/sak/minside/MikrofrontendEnableBrukereTask.kt @@ -20,9 +20,9 @@ class MikrofrontendEnableBrukereTask(val minSideKafkaProducerService: MinSideKaf override fun doTask(task: Task) { logger.info("Starter task for aktivering av brukere for mikrofrontend") - val fagsakPersonIdenter = objectMapper.readValue>(task.payload) - fagsakPersonIdenter.forEach { fagsakPerson -> - minSideKafkaProducerService.aktiver(fagsakPerson.hentAktivIdent()) + val personIdenter = objectMapper.readValue>(task.payload) + personIdenter.forEach { personIdent -> + minSideKafkaProducerService.aktiver(personIdent) } } @@ -31,7 +31,13 @@ class MikrofrontendEnableBrukereTask(val minSideKafkaProducerService: MinSideKaf fun opprettTask(fagsakPerson: List): Task { return Task( type = TYPE, - payload = objectMapper.writeValueAsString(fagsakPerson), + payload = objectMapper.writeValueAsString(fagsakPerson.map { it.hentAktivIdent() }), + ) + } + fun opprettTask(fagsakPerson: FagsakPerson): Task { + return Task( + type = TYPE, + payload = objectMapper.writeValueAsString(listOf(fagsakPerson.hentAktivIdent())), ) } const val TYPE = "mikrofrontendEnableBrukereTask" diff --git a/src/test/kotlin/no/nav/familie/ef/sak/OppslagSpringRunnerTest.kt b/src/test/kotlin/no/nav/familie/ef/sak/OppslagSpringRunnerTest.kt index 297fc0ec20..a8dda13e40 100644 --- a/src/test/kotlin/no/nav/familie/ef/sak/OppslagSpringRunnerTest.kt +++ b/src/test/kotlin/no/nav/familie/ef/sak/OppslagSpringRunnerTest.kt @@ -75,6 +75,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension "mock-historiskpensjon", "mock-featuretoggle", "mock-egen-ansatt", + "mock-kafka", ) @EnableMockOAuth2Server abstract class OppslagSpringRunnerTest { diff --git a/src/test/kotlin/no/nav/familie/ef/sak/infrastruktur/config/KafkaMock.kt b/src/test/kotlin/no/nav/familie/ef/sak/infrastruktur/config/KafkaMock.kt new file mode 100644 index 0000000000..e8f7541769 --- /dev/null +++ b/src/test/kotlin/no/nav/familie/ef/sak/infrastruktur/config/KafkaMock.kt @@ -0,0 +1,19 @@ +package no.nav.familie.ef.sak.no.nav.familie.ef.sak.infrastruktur.config + +import io.mockk.mockk +import no.nav.familie.ef.sak.minside.MinSideKafkaProducerService +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Primary +import org.springframework.context.annotation.Profile + +@Configuration +class KafkaMock { + + @Profile("mock-kafka") + @Bean + @Primary + fun minSideKafkaProducerService(): MinSideKafkaProducerService { + return mockk(relaxed = true) + } +}