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

Sletter data om arbeidssøkerperiode dersom periode er avsluttet #1788

Draft
wants to merge 2 commits into
base: dev
Choose a base branch
from
Draft
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
Expand Up @@ -57,10 +57,6 @@ class ArbeidssoekerService(

@Transactional
fun behandleKafkaMeldingLogikk(kafkaMelding: Periode) {
if (!FeatureToggle.brukNyttArbeidssoekerregisterKafka(defaultUnleash)) {
secureLog.info("Bryter for å lytte på kafkameldinger fra nytt arbeidssøkerregister er skrudd av. Ignorerer melding.")
return
}
val periodeId = kafkaMelding.id
val identitetsnummer = kafkaMelding.identitetsnummer

Expand All @@ -76,6 +72,14 @@ class ArbeidssoekerService(
val aktorId = pdlIdentRepository.hentAktorIdForAktivBruker(fnr)

sisteArbeidssoekerPeriodeRepository.slettSisteArbeidssoekerPeriode(fnr)

if (kafkaMelding.avsluttet != null) {
secureLog.info("Slettet siste arbeidssøkerperiode med tilhørende opplysninger og profilering for bruker med fnr: $fnr")
opensearchIndexerV2.deleteOpplysningerOmArbeidssoeker(aktorId)
opensearchIndexerV2.deleteProfilering(aktorId)
return
}

sisteArbeidssoekerPeriodeRepository.insertSisteArbeidssoekerPeriode(ArbeidssoekerPeriodeEntity(periodeId, fnr.get()))
secureLog.info("Lagret siste arbeidssøkerperiode for bruker med fnr: $fnr")

Expand Down Expand Up @@ -115,10 +119,6 @@ class ArbeidssoekerService(

@Transactional
fun behandleKafkaMeldingLogikk(opplysninger: OpplysningerOmArbeidssoekerKafkaMelding) {
if (!FeatureToggle.brukNyttArbeidssoekerregisterKafka(defaultUnleash)) {
secureLog.info("Bryter for å lytte på kafkameldinger fra nytt arbeidssøkerregister er skrudd av. Ignorerer melding.")
return
}
val arbeidssoekerPeriodeId = opplysninger.periodeId
val opplysningerOmArbeidssoekerId = opplysninger.id

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,30 @@ public void updateOpplysningerOmArbeidssoeker(AktorId aktoerId, OpplysningerOmAr
update(aktoerId, content, "Oppdater opplysninger om arbeidssøker");
}

@SneakyThrows
public void deleteProfilering(AktorId aktoerId) {
final XContentBuilder content = jsonBuilder()
.startObject()
.nullField("profilering_resultat")
.endObject();

update(aktoerId, content, "Oppdater profileringsresultat");
}

@SneakyThrows
public void deleteOpplysningerOmArbeidssoeker(AktorId aktoerId) {
final XContentBuilder content = jsonBuilder()
.startObject()
.nullField("brukers_situasjoner")
.nullField("utdanning")
.nullField("utdanning_bestatt")
.nullField("utdanning_godkjent")
.nullField("utdanning_og_situasjon_sist_endret")
.endObject();

update(aktoerId, content, "Oppdater opplysninger om arbeidssøker");
}

@SneakyThrows
public void updateProfilering(AktorId aktoerId, ProfileringEntity profileringEntity) {
final XContentBuilder content = jsonBuilder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ import org.springframework.boot.test.mock.mockito.MockBean
import org.springframework.jdbc.core.JdbcTemplate
import java.time.Instant
import java.time.ZonedDateTime
import java.time.temporal.ChronoUnit
import java.time.temporal.TemporalUnit
import java.util.*
import java.util.concurrent.TimeUnit
import no.nav.paw.arbeidssokerregisteret.api.v1.JaNeiVetIkke as JaNeiVetIkkeEkstern
import no.nav.paw.arbeidssokerregisteret.api.v1.Profilering as ProfileringKafkamelding
import no.nav.paw.arbeidssokerregisteret.api.v4.OpplysningerOmArbeidssoeker as OpplysningerOmArbeidssoekerKafkamelding
Expand Down Expand Up @@ -327,6 +330,53 @@ class ArbeidssoekerServiceTest(
assertTrue(harNyProfilering)
}

@Test
fun `Ved kafkamelding om avsluttet arbeidssøkerperiode skal all data fra arbeidssøkerregisteret slettes`() {
// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val arbeidssoekerPeriodeId = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val fnr = Fnr.of("17858998980")
val aktorId = randomAktorId()

mockPdlIdenterRespons(aktorId, fnr)
mockPdlPersonRespons(fnr)
mockPdlPersonBarnRespons()
mockHentOppfolgingsbrukerResponse(fnr)
mockHentArbeidssoekerPerioderResponse(fnr)
mockHentOpplysningerOmArbeidssoekerResponse(fnr, arbeidssoekerPeriodeId)
mockHentProfileringResponse(fnr, arbeidssoekerPeriodeId)

oppfolgingPeriodeService.behandleKafkaMeldingLogikk(genererStartetOppfolgingsperiode(aktorId))

val arbeidssoekerPeriodeMeldingMedAvsluttDato = Periode(
arbeidssoekerPeriodeId,
fnr.get(),
Metadata(
Instant.now().minus(1, ChronoUnit.DAYS),
null,
null,
null
),
Metadata(
Instant.now(),
null,
null,
null
)
)

// Act
val lagretArbeidssoekerPeriodeForAvslutting = sisteArbeidssoekerPeriodeRepository.hentSisteArbeidssoekerPeriode(arbeidssoekerPeriodeId)
arbeidssoekerService.behandleKafkaMeldingLogikk(arbeidssoekerPeriodeMeldingMedAvsluttDato)
val lagretArbeidssoekerPeriodeEtterAvslutting = sisteArbeidssoekerPeriodeRepository.hentSisteArbeidssoekerPeriode(arbeidssoekerPeriodeId)

// Assert
assertThat(lagretArbeidssoekerPeriodeForAvslutting).isNotNull
assertThat(lagretArbeidssoekerPeriodeForAvslutting?.arbeidssoekerperiodeId).isEqualTo(arbeidssoekerPeriodeId)
assertThat(lagretArbeidssoekerPeriodeEtterAvslutting).isNull()
// TODO: Litt fleire asserts
}

@Test
fun ved_kafkamelding_om_nye_opplysninger_om_arbeidssoeker_paa_ny_arbeidssoekerperiode_ignoreres_meldingen_dersom_vi_ikke_har_data_paa_periodeId() {
// Arrange
Expand Down