Skip to content

Commit

Permalink
feat: legge til hentUtvidetOrganisasjon i EReg-klient (#1358)
Browse files Browse the repository at this point in the history
Co-authored-by: Jens-Otto Larsen <46576810+jolarsen@users.noreply.github.com>
  • Loading branch information
sirimykland and jolarsen committed Apr 12, 2024
1 parent 27aa641 commit 8032cf0
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ protected AbstractOrganisasjonKlient(RestClient client) {

@Override
public OrganisasjonEReg hentOrganisasjon(String orgnummer) {
var uri = lagURI(orgnummer);
var request = RestRequest.newGET(uri, restConfig);
return restKlient.send(request, OrganisasjonEReg.class);
return hentOrganisasjon(orgnummer, OrganisasjonEReg.class);
}

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

@Override
public String hentOrganisasjonNavn(String orgnummer) {
var uri = lagURI(orgnummer);
var request = RestRequest.newGET(uri, restConfig);
return restKlient.send(request, OrganisasjonEReg.class).getNavn();
return hentOrganisasjon(orgnummer, OrganisasjonEReg.class).getNavn();
}

@Override
@Deprecated /* Bruk hentUtvidetOrganisasjon */
public JuridiskEnhetVirksomheter hentOrganisasjonHistorikk(String orgnummer) {
return hentUtvidetOrganisasjon(orgnummer, JuridiskEnhetVirksomheter.class);
}

@Override
public UtvidetOrganisasjonEReg hentUtvidetOrganisasjon(String orgnummer) {
return hentUtvidetOrganisasjon(orgnummer, UtvidetOrganisasjonEReg.class);
}

@Override
public <T> T hentUtvidetOrganisasjon(String orgnummer, Class<T> clazz) {
var query = UriBuilder.fromUri(restConfig.endpoint())
.path(orgnummer)
.queryParam("inkluderHierarki", "true")
.queryParam("inkluderHistorikk", "true")
.queryParam("inkluderHierarki", true)
.queryParam("inkluderHistorikk", true)
.build();
var request = RestRequest.newGET(query, restConfig);
return restKlient.send(request, JuridiskEnhetVirksomheter.class);
return restKlient.send(request, clazz);
}

private URI lagURI(String orgnummer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import no.nav.vedtak.konfig.Tid;

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ public interface OrgInfo {

JuridiskEnhetVirksomheter hentOrganisasjonHistorikk(String orgnummer);

UtvidetOrganisasjonEReg hentUtvidetOrganisasjon(String orgnummer);

<T> T hentUtvidetOrganisasjon(String orgnummer, Class<T> clazz);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package no.nav.vedtak.felles.integrasjon.organisasjon;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import no.nav.vedtak.konfig.Tid;

@JsonIgnoreProperties(ignoreUnknown = true)
public record UtvidetOrganisasjonEReg(String organisasjonsnummer, OrganisasjonstypeEReg type, OrganisasjonDetaljer organisasjonDetaljer,
List<DriverVirksomhet> driverVirksomheter) {


public List<String> getEksaktVirksomhetForDato(LocalDate hentedato) {
if (!OrganisasjonstypeEReg.JURIDISK_ENHET.equals(type) || getOpphørsdatoNonNull().isBefore(hentedato)) {
return List.of();
}
return Optional.ofNullable(driverVirksomheter)
.orElse(List.of())
.stream()
.filter(v -> v.gyldighetsperiode().fom().isBefore(hentedato) && v.gyldighetsperiode().getTomNonNull().isAfter(hentedato))
.map(DriverVirksomhet::organisasjonsnummer)
.toList();
}

public LocalDate getRegistreringsdato() {
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::registreringsdato).map(LocalDateTime::toLocalDate).orElse(null);
}

public LocalDate getOpphørsdato() {
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::opphoersdato).orElse(null);
}

private LocalDate getOpphørsdatoNonNull() {
return Optional.ofNullable(organisasjonDetaljer).map(OrganisasjonDetaljer::opphoersdato).orElse(Tid.TIDENES_ENDE);
}

private record OrganisasjonDetaljer(LocalDateTime registreringsdato, LocalDate opphoersdato) {
}

private record DriverVirksomhet(String organisasjonsnummer, Periode gyldighetsperiode) {
}

private record Periode(LocalDate fom, LocalDate tom) {

public LocalDate getTomNonNull() {
return Optional.ofNullable(tom).orElse(Tid.TIDENES_ENDE);
}

}

}

0 comments on commit 8032cf0

Please sign in to comment.