Skip to content

Commit

Permalink
Overgangsfase konsumer fødselsdato-hendelse
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen committed Jun 15, 2024
1 parent aad917e commit aea87bd
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.Optional;
import java.util.function.Supplier;

import org.apache.kafka.common.serialization.Deserializer;
Expand All @@ -23,6 +24,7 @@
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import no.nav.foreldrepenger.abonnent.felles.domene.HendelseKilde;
import no.nav.foreldrepenger.abonnent.felles.domene.HendelseType;
import no.nav.foreldrepenger.abonnent.felles.domene.HåndtertStatusType;
import no.nav.foreldrepenger.abonnent.felles.domene.InngåendeHendelse;
import no.nav.foreldrepenger.abonnent.felles.task.HendelserDataWrapper;
Expand Down Expand Up @@ -113,7 +115,10 @@ void handleMessage(String key, Personhendelse payload) { // key er spesialtegn +
loggMottakUtenDato(payload, "fødsel");
}
var pdlFødsel = oversetter.oversettFødsel(payload);
prosesserHendelseVidereHvisRelevant(pdlFødsel);
// Må håndtere korrigerte og annullerte hendelser et par dager framover
if (!HendelseType.PDL_FØDSEL_OPPRETTET.equals(pdlFødsel.getHendelseType())) {
prosesserHendelseVidereHvisRelevant(pdlFødsel);
}
}

private void håndterFødselsdato(Personhendelse payload) {
Expand All @@ -123,8 +128,12 @@ void handleMessage(String key, Personhendelse payload) { // key er spesialtegn +
} else {
loggMottakUtenDato(payload, "fødsel dato");
}
//var pdlFødsel = oversetter.oversettFødsel(payload);
//prosesserHendelseVidereHvisRelevant(pdlFødsel);
var pdlFødsel = oversetter.oversettFødselsdato(payload);
var tidligere = Optional.ofNullable(pdlFødsel.getTidligereHendelseId())
.flatMap(th -> hendelseRepository.finnHendelseFraIdHvisFinnes(th, HendelseKilde.PDL));
if (HendelseType.PDL_FØDSEL_OPPRETTET.equals(pdlFødsel.getHendelseType()) || tidligere.isPresent()) {
prosesserHendelseVidereHvisRelevant(pdlFødsel);
}
}

private void håndterDødsfall(Personhendelse payload) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
import java.time.LocalDateTime;
import java.time.ZoneId;

import jakarta.enterprise.context.ApplicationScoped;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import jakarta.enterprise.context.ApplicationScoped;
import no.nav.foreldrepenger.abonnent.felles.domene.HendelseType;
import no.nav.foreldrepenger.abonnent.pdl.domene.eksternt.PdlDød;
import no.nav.foreldrepenger.abonnent.pdl.domene.eksternt.PdlDødfødsel;
Expand Down Expand Up @@ -43,6 +42,17 @@ public PdlLeesahOversetter() {
return builder.build();
}

public PdlFødsel oversettFødselsdato(Personhendelse personhendelse) {
var builder = PdlFødsel.builder();
oversettPersonhendelse(personhendelse, builder);

if (personhendelse.getFoedselsdato() != null) {
builder.medFødselsdato(personhendelse.getFoedselsdato().getFoedselsdato());
}

return builder.build();
}

public PdlDød oversettDød(Personhendelse personhendelse) {
var builder = PdlDød.builder();
oversettPersonhendelse(personhendelse, builder);
Expand Down Expand Up @@ -99,7 +109,7 @@ private HendelseType oversettHendelseType(Personhendelse personhendelse) {
var endringstype = personhendelse.getEndringstype();

switch (opplysningstype) {
case FØDSEL -> {
case FØDSEL, FØDSELSDATO -> {
return switch (endringstype) {
case OPPRETTET -> HendelseType.PDL_FØDSEL_OPPRETTET;
case ANNULLERT -> HendelseType.PDL_FØDSEL_ANNULLERT;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;

import no.nav.foreldrepenger.abonnent.pdl.domene.PersonIdent;
import no.nav.pdl.Foedsel;
import no.nav.pdl.FoedselResponseProjection;
import no.nav.pdl.Foedselsdato;
import no.nav.pdl.FoedselsdatoResponseProjection;
import no.nav.pdl.ForelderBarnRelasjon;
import no.nav.pdl.ForelderBarnRelasjonResponseProjection;
import no.nav.pdl.ForelderBarnRelasjonRolle;
Expand Down Expand Up @@ -54,12 +53,12 @@ public List<PersonIdent> hentForeldreTil(PersonIdent barn) {
var request = new HentPersonQueryRequest();
request.setIdent(barn.getIdent());
var projection = new PersonResponseProjection()
.foedsel(new FoedselResponseProjection().foedselsdato());
.foedselsdato(new FoedselsdatoResponseProjection().foedselsdato());

var person = pdlKlient.hentPerson(request, projection);

return person.getFoedsel().stream()
.map(Foedsel::getFoedselsdato)
return person.getFoedselsdato().stream()
.map(Foedselsdato::getFoedselsdato)
.filter(Objects::nonNull)
.findFirst()
.map(d -> LocalDate.parse(d, DateTimeFormatter.ISO_LOCAL_DATE));
Expand Down

0 comments on commit aea87bd

Please sign in to comment.