-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add ElasticSearch data models and mapping strategies for dolly search…
… service
- Loading branch information
Showing
11 changed files
with
308 additions
and
99 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
24 changes: 0 additions & 24 deletions
24
.github/workflows/app.generer-arbeidsforhold-populasjon-service.yml
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
19 changes: 19 additions & 0 deletions
19
...earch-service/src/main/java/no/nav/testnav/dollysearchservice/mapper/MappingStrategy.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package no.nav.testnav.dollysearchservice.mapper; | ||
|
||
import ma.glasnost.orika.MapperFactory; | ||
|
||
@FunctionalInterface | ||
public interface MappingStrategy { | ||
|
||
/** | ||
* A callback for registering criteria on the provided {@link MapperFactory}. | ||
* <p/> | ||
* <pre>{@code | ||
* | ||
* @Override public void register(MapperFactory factory) { | ||
* factory.registerMapper(arbeidsfordelingToRestArbeidsfordeling()); | ||
* } | ||
* }</pre> | ||
*/ | ||
void register(MapperFactory factory); | ||
} |
31 changes: 31 additions & 0 deletions
31
...main/java/no/nav/testnav/dollysearchservice/mapper/OpenSearchResponseMappingStrategy.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package no.nav.testnav.dollysearchservice.mapper; | ||
|
||
import ma.glasnost.orika.CustomMapper; | ||
import ma.glasnost.orika.MapperFactory; | ||
import ma.glasnost.orika.MappingContext; | ||
import no.nav.testnav.dollysearchservice.dto.SearchInternalResponse; | ||
import no.nav.testnav.libs.data.dollysearchservice.v1.SearchResponse; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
public class OpenSearchResponseMappingStrategy implements MappingStrategy { | ||
|
||
@Override | ||
public void register(MapperFactory factory) { | ||
factory.classMap(SearchInternalResponse.class, SearchResponse.class) | ||
.customize(new CustomMapper<>() { | ||
@Override | ||
public void mapAtoB(SearchInternalResponse searchInternalResponse, SearchResponse searchResponse, MappingContext context) { | ||
|
||
searchResponse.setTotalHits(searchInternalResponse.getTotalHits()); | ||
searchResponse.setTook(searchInternalResponse.getTook()); | ||
searchResponse.setSide(searchInternalResponse.getSide()); | ||
searchResponse.setAntall(searchInternalResponse.getAntall()); | ||
searchResponse.setSeed(searchInternalResponse.getSeed()); | ||
searchResponse.setPersoner(searchInternalResponse.getPersoner()); | ||
searchResponse.setError(searchInternalResponse.getError()); | ||
} | ||
}) | ||
.register(); | ||
} | ||
} |
98 changes: 98 additions & 0 deletions
98
...jects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/ElasticBestilling.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
package no.nav.testnav.libs.data.dollysearchservice.v1; | ||
|
||
import com.fasterxml.jackson.annotation.JsonIgnore; | ||
import com.fasterxml.jackson.annotation.JsonInclude; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Data; | ||
import lombok.NoArgsConstructor; | ||
import no.nav.testnav.libs.data.arbeidsplassencv.v1.ArbeidsplassenCVDTO; | ||
import no.nav.testnav.libs.dto.inntektsmeldinggeneratorservice.v1.rs.RsInntektsmelding; | ||
import no.nav.testnav.libs.dto.skattekortservice.v1.SkattekortRequestDTO; | ||
import no.nav.testnav.libs.dto.yrkesskade.v1.YrkesskadeRequest; | ||
import org.springframework.data.annotation.Id; | ||
import org.springframework.data.annotation.Transient; | ||
import org.springframework.data.domain.Persistable; | ||
import org.springframework.data.elasticsearch.annotations.Document; | ||
import org.springframework.data.elasticsearch.annotations.Field; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
import static java.util.Objects.isNull; | ||
|
||
@Document(indexName = "#{@environment.getProperty('open.search.index')}") | ||
@Data | ||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@JsonInclude(JsonInclude.Include.NON_EMPTY) | ||
public class ElasticBestilling implements Persistable<Long> { | ||
|
||
@Id | ||
private Long id; | ||
@Field | ||
private Object krrstub; | ||
@Field | ||
private Object fullmakt; | ||
@Field | ||
private Object medl; | ||
@Field | ||
private Object instdata; | ||
@Field | ||
private Object aareg; | ||
@Field | ||
private Object sigrunstub; | ||
@Field | ||
private Object sigrunstubPensjonsgivende; | ||
@Field | ||
private Object inntektstub; | ||
@Field | ||
private Object arenaforvalter; | ||
@Field | ||
private Object udistub; | ||
@Field | ||
private Object pensjonforvalter; | ||
@Field | ||
private RsInntektsmelding inntektsmelding; | ||
@Field | ||
private Object brregstub; | ||
@Field | ||
private Object dokarkiv; | ||
@Field | ||
private Object histark; | ||
@Field | ||
private Object sykemelding; | ||
@Field | ||
private Object bankkonto; | ||
@Field | ||
private Object skjerming; | ||
@Field | ||
private ArbeidsplassenCVDTO arbeidsplassenCV; | ||
@Field | ||
private SkattekortRequestDTO skattekort; | ||
@Field | ||
private List<YrkesskadeRequest> yrkesskader; | ||
@Field | ||
private Object arbeidssoekerregisteret; | ||
@Field | ||
private List<String> identer; | ||
@Transient | ||
@JsonIgnore | ||
private boolean ignore; | ||
|
||
@Override | ||
@JsonIgnore | ||
@Transient | ||
public boolean isNew() { | ||
|
||
return false; | ||
} | ||
|
||
public List<String> getIdenter() { | ||
if (isNull(identer)) { | ||
identer = new ArrayList<>(); | ||
} | ||
return identer; | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
...ch-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/ElasticTyper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package no.nav.testnav.libs.data.dollysearchservice.v1; | ||
|
||
import lombok.Getter; | ||
|
||
@Getter | ||
public enum ElasticTyper { | ||
|
||
AAREG("Arbeidsgiver/arbeidstaker-register (AAREG)"), | ||
ARBEIDSPLASSENCV("Arbeidsplassen CV"), | ||
ARBEIDSSOEKERREGISTERET("Arbeidssøkerregisteret"), | ||
ARENA_AAP("Arena AAP ytelse"), | ||
ARENA_AAP115("Arena AAP115 rettighet"), | ||
ARENA_DAGP("Arena dagpenger"), | ||
BANKKONTO("Bankkontoregister"), | ||
BANKKONTO_NORGE("Bankkonto i Norge"), | ||
BANKKONTO_UTLAND("Bankkonto i utlandet"), | ||
BRREGSTUB("Brønnøysundregistrene (BRREGSTUB)"), | ||
DOKARKIV("Dokumentarkiv (JOARK)"), | ||
FULLMAKT("Fullmakt (Representasjon)"), | ||
HISTARK("Historisk arkiv (HISTARK)"), | ||
INNTK("Inntektskomponenten/stub (INNTK)"), | ||
INNTKMELD("Inntektsmelding (ALTINN/JOARK)"), | ||
INST("Institusjonsopphold (INST2)"), | ||
KRRSTUB("Kontakt- og reservasjonsregister-stub"), | ||
MEDL("Medlemskap (MEDL)"), | ||
PEN_AFP_OFFENTLIG("Pensjon - AFP offentlig"), | ||
PEN_AP("Pensjon - Alderspensjon (AP)"), | ||
PEN_INNTEKT("Pensjon - Pensjonsinntekt/opptjening"), | ||
PEN_PENSJONSAVTALE("Pensjon - Pensjonsavtaler"), | ||
PEN_TP("Pensjon - Tjenestepensjon (TP)"), | ||
PEN_UT("Pensjon - Uføretrygd (UT)"), | ||
SIGRUN_LIGNET("Sigrunstub - Lignet skatteinntekt"), | ||
SIGRUN_PENSJONSGIVENDE("Sigrunstub - Pensjonsgivende inntekt"), | ||
SKATTEKORT("Skattekort (SOKOS)"), | ||
SKJERMING("Skjermingsregisteret"), | ||
SYKEMELDING("Sykemelding"), | ||
UDISTUB("Udistub - Utlendingsdirektoratet"), | ||
YRKESSKADE("Yrkesskade"); | ||
|
||
private final String beskrivelse; | ||
|
||
ElasticTyper(String beskrivelse) { | ||
this.beskrivelse = beskrivelse; | ||
} | ||
} |
67 changes: 67 additions & 0 deletions
67
...h-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/PersonRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
package no.nav.testnav.libs.data.dollysearchservice.v1; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Data; | ||
import lombok.NoArgsConstructor; | ||
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO; | ||
import no.nav.testnav.libs.data.pdlforvalter.v1.Identtype; | ||
import no.nav.testnav.libs.data.pdlforvalter.v1.KjoennDTO; | ||
import no.nav.testnav.libs.data.pdlforvalter.v1.SivilstandDTO; | ||
|
||
@Data | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(force = true) | ||
public class PersonRequest { | ||
|
||
private Identtype identtype; | ||
private KjoennDTO.Kjoenn kjoenn; | ||
private Integer alderFom; | ||
private Integer alderTom; | ||
private SivilstandDTO.Sivilstand sivilstand; | ||
|
||
private Boolean harBarn; | ||
private Boolean harForeldre; | ||
private Boolean harDoedfoedtBarn; | ||
private Boolean harForeldreAnsvar; | ||
private Boolean harVerge; | ||
private Boolean harDoedsfall; | ||
private Boolean harInnflytting; | ||
private Boolean harUtflytting; | ||
private Boolean harKontaktinformasjonForDoedsbo; | ||
private Boolean harUtenlandskIdentifikasjonsnummer; | ||
private Boolean harFalskIdentitet; | ||
private Boolean harTilrettelagtKommunikasjon; | ||
private Boolean harSikkerhetstiltak; | ||
private Boolean harOpphold; | ||
@Schema(description = "landkode") | ||
private String statsborgerskap; | ||
private Boolean harNyIdentitet; | ||
|
||
private AdresseRequest adresse; | ||
|
||
@Data | ||
@Builder | ||
@AllArgsConstructor | ||
@NoArgsConstructor(force = true) | ||
public static class AdresseRequest { | ||
|
||
private AdressebeskyttelseDTO.AdresseBeskyttelse addressebeskyttelse; | ||
|
||
private String kommunenummer; | ||
private String postnummer; | ||
private String bydelsnummer; | ||
|
||
private Boolean harBydelsnummer; | ||
private Boolean harUtenlandsadresse; | ||
private Boolean harMatrikkeladresse; | ||
private Boolean harUkjentAdresse; | ||
private Boolean harDeltBosted; | ||
|
||
private Boolean harBostedsadresse; | ||
private Boolean harKontaktadresse; | ||
private Boolean harOppholdsadresse; | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
...h-objects/src/main/java/no/nav/testnav/libs/data/dollysearchservice/v1/SearchRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package no.nav.testnav.libs.data.dollysearchservice.v1; | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Data; | ||
import lombok.NoArgsConstructor; | ||
|
||
@Data | ||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class SearchRequest { | ||
|
||
@Schema(description = "Sidenummer") | ||
private Integer side; | ||
@Schema(description = "Antall resultater per side") | ||
private Integer antall; | ||
@Schema(description = "Seed for paginering") | ||
private Integer seed; | ||
|
||
@Schema(description = "Persondetaljer") | ||
private PersonRequest personRequest; | ||
} |
Oops, something went wrong.