Skip to content

Commit 8032cf0

Browse files
feat: legge til hentUtvidetOrganisasjon i EReg-klient (#1358)
Co-authored-by: Jens-Otto Larsen <[email protected]>
1 parent 27aa641 commit 8032cf0

File tree

4 files changed

+77
-9
lines changed

4 files changed

+77
-9
lines changed

integrasjon/ereg-klient/src/main/java/no/nav/vedtak/felles/integrasjon/organisasjon/AbstractOrganisasjonKlient.java

+16-9
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@ protected AbstractOrganisasjonKlient(RestClient client) {
2727

2828
@Override
2929
public OrganisasjonEReg hentOrganisasjon(String orgnummer) {
30-
var uri = lagURI(orgnummer);
31-
var request = RestRequest.newGET(uri, restConfig);
32-
return restKlient.send(request, OrganisasjonEReg.class);
30+
return hentOrganisasjon(orgnummer, OrganisasjonEReg.class);
3331
}
3432

3533
@Override
@@ -41,20 +39,29 @@ public <T> T hentOrganisasjon(String orgnummer, Class<T> clazz) {
4139

4240
@Override
4341
public String hentOrganisasjonNavn(String orgnummer) {
44-
var uri = lagURI(orgnummer);
45-
var request = RestRequest.newGET(uri, restConfig);
46-
return restKlient.send(request, OrganisasjonEReg.class).getNavn();
42+
return hentOrganisasjon(orgnummer, OrganisasjonEReg.class).getNavn();
4743
}
4844

4945
@Override
46+
@Deprecated /* Bruk hentUtvidetOrganisasjon */
5047
public JuridiskEnhetVirksomheter hentOrganisasjonHistorikk(String orgnummer) {
48+
return hentUtvidetOrganisasjon(orgnummer, JuridiskEnhetVirksomheter.class);
49+
}
50+
51+
@Override
52+
public UtvidetOrganisasjonEReg hentUtvidetOrganisasjon(String orgnummer) {
53+
return hentUtvidetOrganisasjon(orgnummer, UtvidetOrganisasjonEReg.class);
54+
}
55+
56+
@Override
57+
public <T> T hentUtvidetOrganisasjon(String orgnummer, Class<T> clazz) {
5158
var query = UriBuilder.fromUri(restConfig.endpoint())
5259
.path(orgnummer)
53-
.queryParam("inkluderHierarki", "true")
54-
.queryParam("inkluderHistorikk", "true")
60+
.queryParam("inkluderHierarki", true)
61+
.queryParam("inkluderHistorikk", true)
5562
.build();
5663
var request = RestRequest.newGET(query, restConfig);
57-
return restKlient.send(request, JuridiskEnhetVirksomheter.class);
64+
return restKlient.send(request, clazz);
5865
}
5966

6067
private URI lagURI(String orgnummer) {

integrasjon/ereg-klient/src/main/java/no/nav/vedtak/felles/integrasjon/organisasjon/JuridiskEnhetVirksomheter.java

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import no.nav.vedtak.konfig.Tid;
1111

1212
@JsonIgnoreProperties(ignoreUnknown = true)
13+
@Deprecated /* Bruk OrganisasjonUtvidetEReg */
1314
public record JuridiskEnhetVirksomheter(String organisasjonsnummer, OrganisasjonstypeEReg type, OrganisasjonDetaljer organisasjonDetaljer,
1415
List<DriverVirksomhet> driverVirksomheter) {
1516

integrasjon/ereg-klient/src/main/java/no/nav/vedtak/felles/integrasjon/organisasjon/OrgInfo.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ public interface OrgInfo {
1010

1111
JuridiskEnhetVirksomheter hentOrganisasjonHistorikk(String orgnummer);
1212

13+
UtvidetOrganisasjonEReg hentUtvidetOrganisasjon(String orgnummer);
14+
15+
<T> T hentUtvidetOrganisasjon(String orgnummer, Class<T> clazz);
16+
1317
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package no.nav.vedtak.felles.integrasjon.organisasjon;
2+
3+
import java.time.LocalDate;
4+
import java.time.LocalDateTime;
5+
import java.util.List;
6+
import java.util.Optional;
7+
8+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
9+
10+
import no.nav.vedtak.konfig.Tid;
11+
12+
@JsonIgnoreProperties(ignoreUnknown = true)
13+
public record UtvidetOrganisasjonEReg(String organisasjonsnummer, OrganisasjonstypeEReg type, OrganisasjonDetaljer organisasjonDetaljer,
14+
List<DriverVirksomhet> driverVirksomheter) {
15+
16+
17+
public List<String> getEksaktVirksomhetForDato(LocalDate hentedato) {
18+
if (!OrganisasjonstypeEReg.JURIDISK_ENHET.equals(type) || getOpphørsdatoNonNull().isBefore(hentedato)) {
19+
return List.of();
20+
}
21+
return Optional.ofNullable(driverVirksomheter)
22+
.orElse(List.of())
23+
.stream()
24+
.filter(v -> v.gyldighetsperiode().fom().isBefore(hentedato) && v.gyldighetsperiode().getTomNonNull().isAfter(hentedato))
25+
.map(DriverVirksomhet::organisasjonsnummer)
26+
.toList();
27+
}
28+
29+
public LocalDate getRegistreringsdato() {
30+
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::registreringsdato).map(LocalDateTime::toLocalDate).orElse(null);
31+
}
32+
33+
public LocalDate getOpphørsdato() {
34+
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::opphoersdato).orElse(null);
35+
}
36+
37+
private LocalDate getOpphørsdatoNonNull() {
38+
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::opphoersdato).orElse(Tid.TIDENES_ENDE);
39+
}
40+
41+
private record OrganisasjonDetaljer(LocalDateTime registreringsdato, LocalDate opphoersdato) {
42+
}
43+
44+
private record DriverVirksomhet(String organisasjonsnummer, Periode gyldighetsperiode) {
45+
}
46+
47+
private record Periode(LocalDate fom, LocalDate tom) {
48+
49+
public LocalDate getTomNonNull() {
50+
return Optional.ofNullable(tom).orElse(Tid.TIDENES_ENDE);
51+
}
52+
53+
}
54+
55+
}
56+

0 commit comments

Comments
 (0)