Skip to content

Commit

Permalink
Merge branch 'dev' into legg-til-inngar-i-inbound-for-team-dab
Browse files Browse the repository at this point in the history
  • Loading branch information
erikbosnes authored Jan 23, 2025
2 parents 9d3bf2f + d29809e commit 5f1b432
Show file tree
Hide file tree
Showing 16 changed files with 39 additions and 93 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ public class AdminController {

@DeleteMapping("/oppfolgingsbruker")
@Operation(summary = "Fjern bruker", description = "Sletter en bruker og fjerner tilhørende informasjon om brukeren. Brukeren vil ikke lenger eksistere i porteføljene.")
public String slettOppfolgingsbruker(@RequestBody String aktoerId) {
public String slettOppfolgingsbruker(@RequestBody SlettOppfolgingsbrukerRequest request) {
sjekkTilgangTilAdmin();
oppfolgingAvsluttetService.avsluttOppfolging(AktorId.of(aktoerId));
oppfolgingAvsluttetService.avsluttOppfolging(AktorId.of(request.aktorId().get()));
return "Oppfølgingsbruker ble slettet";
}

Expand All @@ -68,9 +68,9 @@ public String lastInnOppfolgingsData() {

@PostMapping("/lastInnOppfolgingForBruker")
@Operation(summary = "Oppdater data for bruker", description = "Oppdaterer oppfølgingsdata for en gitt bruker. Dersom brukeren eventuelt ikke er under oppfølging slettes den.")
public String lastInnOppfolgingsDataForBruker(@RequestBody String fnr) {
public String lastInnOppfolgingsDataForBruker(@RequestBody LastInnOppfolgingForBrukerRequest request) {
sjekkTilgangTilAdmin();
String aktorId = aktorClient.hentAktorId(Fnr.ofValidFnr(fnr)).get();
String aktorId = aktorClient.hentAktorId(Fnr.ofValidFnr(request.fnr().get())).get();
oppfolgingService.oppdaterBruker(AktorId.of(aktorId));
return "Innlastning av oppfolgingsdata har startet";
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.pto.veilarbportefolje.admin.v1;

import no.nav.common.types.identer.Fnr;

public record LastInnOppfolgingForBrukerRequest(
Fnr fnr
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.pto.veilarbportefolje.admin.v1;

import no.nav.common.types.identer.AktorId;

public record SlettOppfolgingsbrukerRequest(
AktorId aktorId
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
import no.nav.pto.veilarbportefolje.domene.AktorClient;
import no.nav.pto.veilarbportefolje.opensearch.OpensearchIndexer;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;

import static no.nav.pto.veilarbportefolje.auth.AuthUtils.erSystemkallFraAzureAd;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package no.nav.pto.veilarbportefolje.arbeidssoeker.v2

import io.getunleash.DefaultUnleash
import no.nav.common.types.identer.AktorId
import no.nav.common.types.identer.Fnr
import no.nav.paw.arbeidssokerregisteret.api.v1.Periode
import no.nav.pto.veilarbportefolje.config.FeatureToggle
import no.nav.pto.veilarbportefolje.kafka.KafkaCommonNonKeyedConsumerService
import no.nav.pto.veilarbportefolje.opensearch.OpensearchIndexerV2
import no.nav.pto.veilarbportefolje.persononinfo.PdlIdentRepository
Expand Down Expand Up @@ -50,17 +48,13 @@ class ArbeidssoekerService(
private val opplysningerOmArbeidssoekerRepository: OpplysningerOmArbeidssoekerRepository,
private val sisteArbeidssoekerPeriodeRepository: SisteArbeidssoekerPeriodeRepository,
private val profileringRepository: ProfileringRepository,
private val defaultUnleash: DefaultUnleash,
private val arbeidssoekerDataRepository: ArbeidssoekerDataRepository,
private val opensearchIndexerV2: OpensearchIndexerV2
) {

@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 Down Expand Up @@ -115,10 +109,7 @@ 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 All @@ -135,7 +126,7 @@ class ArbeidssoekerService(
val fnr = sisteArbeidssoekerPeriode.fnr
if (!pdlIdentRepository.erBrukerUnderOppfolging(fnr)) {
secureLog.info(
"Bruker med fnr ${fnr} er ikke under oppfølging, men har arbeidssøkerpeiode lagret. " +
"Bruker med fnr $fnr er ikke under oppfølging, men har arbeidssøkerpeiode lagret. " +
"Dette betyr at arbeidssøkerdata ikke har blitt slettet riktig når bruker gikk ut av oppfølging. " +
"Ignorer melding, data må slettes manuelt og slettelogikk ved utgang av oppfølging bør kontrollsjekkes for feil."
)
Expand Down Expand Up @@ -164,10 +155,7 @@ class ArbeidssoekerService(

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

secureLog.info("Behandler endring på profilering for bruker med arbeidssoekerPeriodeId: ${kafkaMelding.periodeId}")

val sisteArbeidssoekerPeriode =
Expand All @@ -181,7 +169,7 @@ class ArbeidssoekerService(
val fnr = sisteArbeidssoekerPeriode.fnr
if (!pdlIdentRepository.erBrukerUnderOppfolging(fnr)) {
secureLog.info(
"Bruker med fnr ${fnr} er ikke under oppfølging, men har arbeidssøkerpeiode lagret. " +
"Bruker med fnr $fnr er ikke under oppfølging, men har arbeidssøkerpeiode lagret. " +
"Dette betyr at arbeidssøkerdata ikke har blitt slettet riktig når bruker gikk ut av oppfølging. " +
"Ignorer melding, data må slettes manuelt og slettelogikk ved utgang av oppfølging bør kontrollsjekkes for feil."
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,13 @@ private FeatureToggle() {
public static final String KAFKA_AIVEN_CONSUMERS_STOP = "veilarbportefolje.kafka_aiven_consumers_stop";
public static final String KAFKA_SISTE_14A_STOP = "veilarbportefolje.kafka_siste_14a_stop";
public static final String BRUK_FILTER_FOR_BRUKERINNSYN_TILGANGER = "veilarbportefolje.bruk_filter_for_brukerinnsyn_tilganger";

public static final String STOPP_OPENSEARCH_INDEKSERING = "veilarbportefolje.stopp_opensearch_indeksering";
public static final String BRUK_NYTT_ARBEIDSSOEKERREGISTER = "veilarbportefolje.bruk_nytt_arbeidssoekerregister";
public static final String BRUK_NYTT_ARBEIDSSOEKERREGISTER_KAFKA = "veilarbportefolje.bruk_nytt_arbeidssoekerregister_kafka";

public static final String STOPP_KONSUMERING_FRA_PORTEFOLJE_HENDELSESFILTER_TOPIC = "veilarbportefolje.stopp_konsumering_fra_portefolje_hendelsesfilter_topic";

public static boolean brukAvAliasIndeksering(DefaultUnleash defaultUnleash) {
return defaultUnleash.isEnabled(FeatureToggle.ALIAS_INDEKSERING);
}


public static boolean brukFilterForBrukerinnsynTilganger(DefaultUnleash defaultUnleash) {
return defaultUnleash.isEnabled(FeatureToggle.BRUK_FILTER_FOR_BRUKERINNSYN_TILGANGER);
}

public static boolean stoppOpensearchIndeksering(DefaultUnleash defaultUnleash) {
return defaultUnleash.isEnabled(FeatureToggle.STOPP_OPENSEARCH_INDEKSERING);
}

public static boolean brukNyttArbeidssoekerregister(DefaultUnleash defaultUnleash) {
return defaultUnleash.isEnabled(FeatureToggle.BRUK_NYTT_ARBEIDSSOEKERREGISTER);
}

public static boolean brukNyttArbeidssoekerregisterKafka(DefaultUnleash defaultUnleash) {
return defaultUnleash.isEnabled(FeatureToggle.BRUK_NYTT_ARBEIDSSOEKERREGISTER_KAFKA);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package no.nav.pto.veilarbportefolje.opensearch;

import io.getunleash.DefaultUnleash;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import no.nav.common.types.identer.AktorId;
import no.nav.pto.veilarbportefolje.config.FeatureToggle;

import no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker;
import no.nav.pto.veilarbportefolje.postgres.BrukerRepositoryV2;
import no.nav.pto.veilarbportefolje.postgres.PostgresOpensearchMapper;
Expand Down Expand Up @@ -38,7 +37,6 @@ public class OpensearchIndexer {
private final IndexName alias;
private final PostgresOpensearchMapper postgresOpensearchMapper;
private final OpensearchIndexerV2 opensearchIndexerV2;
private final DefaultUnleash defaultUnleash;

public void indekser(AktorId aktoerId) {
Optional<OppfolgingsBruker> bruker;
Expand Down Expand Up @@ -127,9 +125,8 @@ private void flettInnNodvendigData(List<OppfolgingsBruker> brukere) {
postgresOpensearchMapper.flettInnTiltakshendelser(brukere);
postgresOpensearchMapper.flettInnSiste14aVedtak(brukere);
postgresOpensearchMapper.flettInnEldsteUtgattVarsel(brukere);
if (FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)) {
postgresOpensearchMapper.flettInnOpplysningerOmArbeidssoekerData(brukere);
}

postgresOpensearchMapper.flettInnOpplysningerOmArbeidssoekerData(brukere);

if (brukere.isEmpty()) {
log.warn("Skriver ikke til index da alle brukere i batchen er ugyldige");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package no.nav.pto.veilarbportefolje.persononinfo;

import io.getunleash.DefaultUnleash;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import no.nav.common.types.identer.AktorId;
import no.nav.common.types.identer.Fnr;
import no.nav.pto.veilarbportefolje.config.FeatureToggle;
import no.nav.pto.veilarbportefolje.kafka.KafkaCommonNonKeyedConsumerService;
import no.nav.pto.veilarbportefolje.opensearch.OpensearchIndexer;
import no.nav.pto.veilarbportefolje.opensearch.OpensearchIndexerV2;
Expand Down Expand Up @@ -39,7 +37,6 @@ public class PdlBrukerdataKafkaService extends KafkaCommonNonKeyedConsumerServic
private final BarnUnder18AarService barnUnder18AarService;
private final OpensearchIndexer opensearchIndexer;
private final OpensearchIndexerV2 opensearchIndexerV2;
private final DefaultUnleash defaultUnleash;

@Override
@SneakyThrows
Expand All @@ -60,14 +57,11 @@ public void behandleKafkaMeldingLogikk(PdlDokument pdlDokument) {
if (pdlIdentRepository.harAktorIdUnderOppfolging(aktorIder)) {
AktorId aktivAktorId = hentAktivAktor(pdlIdenter);
secureLog.info("Det oppsto en PDL endring aktoer: {}", aktivAktorId);

handterIdentEndring(pdlIdenter);

handterBrukerDataEndring(pdlDokument.getHentPerson(), pdlIdenter);

if (!FeatureToggle.stoppOpensearchIndeksering(defaultUnleash)) {
oppdaterOpensearch(aktivAktorId, pdlIdenter);
}
oppdaterOpensearch(aktivAktorId, pdlIdenter);
}

if (barnUnder18AarService.erFnrBarnAvForelderUnderOppfolging(fnrs)) {
Expand All @@ -77,7 +71,6 @@ public void behandleKafkaMeldingLogikk(PdlDokument pdlDokument) {

handterBarnEndring(pdlDokument.getHentPerson(), pdlIdenter);

if (!FeatureToggle.stoppOpensearchIndeksering(defaultUnleash)) {
List<Fnr> foreldreTilBarn = barnUnder18AarService.finnForeldreTilBarn(aktivtFnr);

foreldreTilBarn.forEach(fnrForelder -> {
Expand All @@ -89,7 +82,6 @@ public void behandleKafkaMeldingLogikk(PdlDokument pdlDokument) {
}
}
);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import no.nav.paw.arbeidssokerregisteret.api.v1.ProfilertTil
import no.nav.paw.arbeidssokerregisteret.api.v2.Annet
import no.nav.paw.arbeidssokerregisteret.api.v4.Utdanning
import no.nav.pto.veilarbportefolje.config.ApplicationConfigTest
import no.nav.pto.veilarbportefolje.config.FeatureToggle
import no.nav.pto.veilarbportefolje.database.PostgresTable.SISTE_ARBEIDSSOEKER_PERIODE
import no.nav.pto.veilarbportefolje.oppfolging.OppfolgingPeriodeService
import no.nav.pto.veilarbportefolje.oppfolgingsbruker.OppfolgingsbrukerDTO
Expand Down Expand Up @@ -141,7 +140,6 @@ class ArbeidssoekerServiceTest(

@Test
fun meldinger_om_periode_og_opplysninger_om_arbeidssoeker_skal_ignoreres_dersom_bruker_ikke_er_under_oppfolging() {
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val periodeId = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val opplysningerOmArbeidssoekerId = UUID.fromString("913161a3-dde9-4448-abf8-2a01a043f8cd")
val fnr = Fnr.of("17858998980")
Expand Down Expand Up @@ -262,7 +260,6 @@ class ArbeidssoekerServiceTest(
*/

// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val gammelPeriodeId = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val nyPeriodeId = UUID.randomUUID()
val gammelOpplysningerOmArbeidssoekerId = UUID.fromString("913161a3-dde9-4448-abf8-2a01a043f8cd")
Expand Down Expand Up @@ -330,7 +327,6 @@ class ArbeidssoekerServiceTest(
@Test
fun ved_kafkamelding_om_nye_opplysninger_om_arbeidssoeker_paa_ny_arbeidssoekerperiode_ignoreres_meldingen_dersom_vi_ikke_har_data_paa_periodeId() {
// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val periodeIdVedOppfolgingStartet = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val nyPeriodeId = UUID.randomUUID()
val opplysningerOmArbeidssoekerIdVedOppfolgingStartet = UUID.fromString("913161a3-dde9-4448-abf8-2a01a043f8cd")
Expand Down Expand Up @@ -388,7 +384,6 @@ class ArbeidssoekerServiceTest(
@Test
fun ved_kafkamelding_om_nye_opplysninger_om_arbeidssoeker_paa_eksisterende_arbeidssoekerperiode_slettes_gammle_opplysninger_om_arbiedssoeker_og_ny_lagres() {
// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val periodeIdVedOppfolgingStartet = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val opplysningerOmArbeidssoekerIdVedOppfolgingStartet = UUID.fromString("913161a3-dde9-4448-abf8-2a01a043f8cd")
val nyOpplysningerOmArbeidssoekerId = UUID.randomUUID()
Expand Down Expand Up @@ -452,7 +447,6 @@ class ArbeidssoekerServiceTest(
@Test
fun ved_kafkamelding_om_ny_profilering_for_arbeidssoeker_paa_eksisterende_arbeidssoekerperiode_slettes_gammel_profilering_om_arbiedssoeker_og_ny_lagres() {
// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val periodeIdVedOppfolgingStartet = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val nyOpplysningerOmArbeidssoekerId = UUID.randomUUID()
val fnr = Fnr.of("17858998980")
Expand Down Expand Up @@ -499,7 +493,6 @@ class ArbeidssoekerServiceTest(
@Test
fun ved_kafkamelding_om_ny_profilering_for_arbeidssoeker_paa_ny_arbeidssoekerperiode_ignoreres_dersom_vi_ikke_har_priodeId() {
// Arrange
`when`(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true)
val periodeIdVedOppfolgingStartet = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16")
val periodeIdVedEndring = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab20a45")
val nyOpplysningerOmArbeidssoekerId = UUID.randomUUID()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@
import java.util.UUID;

import static no.nav.common.utils.IdUtils.generateId;
import static no.nav.pto.veilarbportefolje.config.FeatureToggle.BRUK_NYTT_ARBEIDSSOEKERREGISTER;
import static no.nav.pto.veilarbportefolje.domene.Kjonn.K;
import static no.nav.pto.veilarbportefolje.opensearch.OpensearchUtils.createClient;
import static no.nav.pto.veilarbportefolje.util.TestDataUtils.*;
Expand Down Expand Up @@ -231,7 +230,6 @@ public AktorClient aktorClient() {
public DefaultUnleash defaultUnleash() {
final DefaultUnleash mock = mock(DefaultUnleash.class);
when(mock.isEnabled(anyString())).thenReturn(true);
when(mock.isEnabled(BRUK_NYTT_ARBEIDSSOEKERREGISTER)).thenReturn(false);

return mock;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import no.nav.common.types.identer.Fnr;
import no.nav.pto.veilarbportefolje.arbeidssoeker.v2.*;
import no.nav.pto.veilarbportefolje.config.ApplicationConfigTest;
import no.nav.pto.veilarbportefolje.config.FeatureToggle;
import no.nav.pto.veilarbportefolje.domene.AktorClient;
import no.nav.pto.veilarbportefolje.domene.BrukerOppdatertInformasjon;
import no.nav.pto.veilarbportefolje.oppfolgingsbruker.*;
Expand Down Expand Up @@ -89,9 +88,6 @@ class OppfolgingStartetOgAvsluttetServiceTest extends EndToEndTest {
@Autowired
private ArbeidssoekerService arbeidssoekerService;

@Autowired
private SisteArbeidssoekerPeriodeRepository sisteArbeidssoekerPeriodeRepository;

@MockBean
private PdlPortefoljeClient pdlPortefoljeClient;

Expand Down Expand Up @@ -237,7 +233,6 @@ public void cleanup() {
@Test
void når_oppfolging_startes_skal_arbeidssoekerdata_hentes_lagres() throws JsonProcessingException {
UUID periodeId = UUID.fromString("ea0ad984-8b99-4fff-afd6-07737ab19d16");
when(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true);
mockPdlIdenterRespons(aktorId, fnr);
mockPdlPersonRespons(fnr);
mockPdlPersonBarnRespons(fnr);
Expand Down Expand Up @@ -338,7 +333,6 @@ public void cleanup() {

@Test
void når_oppfølging_avsluttes_skal_arbeidssøkerdata_slettes() throws JsonProcessingException {
when(FeatureToggle.brukNyttArbeidssoekerregister(defaultUnleash)).thenReturn(true);
when(aktorClient.hentFnr(aktorId)).thenReturn(fnr);
when(aktorClient.hentAktorId(fnr)).thenReturn(aktorId);
mockHentArbeidssoekerPerioderResponse(fnr);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.tomakehurst.wiremock.WireMockServer;
import io.getunleash.DefaultUnleash;
import no.nav.common.client.pdl.PdlClientImpl;
import no.nav.common.types.identer.AktorId;
import no.nav.common.types.identer.Fnr;
Expand Down Expand Up @@ -65,8 +64,6 @@ public class BarnUnder18AarKafkaTest {
private final String pdlDokumentBarn1MedDiskresjonskodeAsString = readFileAsJsonString("/PDL_Files/pdl_dokument_barn1_med_diskresjonskode.json", getClass());
private final JdbcTemplate db;

@MockBean
private DefaultUnleash defaultUnleash;
private final WireMockServer server = new WireMockServer();


Expand Down Expand Up @@ -107,8 +104,7 @@ public void setup() {
new BrukerServiceV2(this.pdlIdentRepository, this.oppfolgingsbrukerRepositoryV3, this.oppfolgingRepositoryV2),
this.barnUnder18AarService,
opensearchIndexer,
opensearchIndexerV2,
defaultUnleash
opensearchIndexerV2
);
}

Expand Down
Loading

0 comments on commit 5f1b432

Please sign in to comment.