-
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.
TFP-3397 mock for ereg/organisasjon rs (#410)
* TFP-3397 mock for ereg/organisasjon rs * NOJIRA blings på array-size
- Loading branch information
Showing
4 changed files
with
217 additions
and
0 deletions.
There are no files selected for viewing
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
146 changes: 146 additions & 0 deletions
146
...asjon-mock/src/main/java/no/nav/tjeneste/virksomhet/organisasjon/rs/OrganisasjonJson.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,146 @@ | ||
package no.nav.tjeneste.virksomhet.organisasjon.rs; | ||
|
||
import java.time.LocalDate; | ||
import java.time.LocalDateTime; | ||
import java.util.Arrays; | ||
import java.util.Objects; | ||
import java.util.stream.Stream; | ||
|
||
import com.fasterxml.jackson.annotation.JsonAutoDetect; | ||
import com.fasterxml.jackson.annotation.JsonFormat; | ||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | ||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
|
||
import no.nav.foreldrepenger.vtp.testmodell.organisasjon.OrganisasjonModell; | ||
|
||
@JsonIgnoreProperties(ignoreUnknown = true) | ||
@JsonFormat(shape = JsonFormat.Shape.OBJECT) | ||
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY) | ||
public class OrganisasjonJson { | ||
|
||
@JsonProperty("organisasjonsnummer") | ||
private String organisasjonsnummer; | ||
@JsonProperty("type") | ||
private String type; | ||
@JsonProperty("navn") | ||
private Navn navn; | ||
@JsonProperty("organisasjonDetaljer") | ||
private OrganisasjonDetaljer organisasjonDetaljer; | ||
|
||
public OrganisasjonJson(OrganisasjonModell org) { | ||
this.type = "Virksomhet"; | ||
this.organisasjonsnummer = org.getOrgnummer(); | ||
this.navn = new Navn(); | ||
var max = Arrays.stream(org.getNavn().getNavnelinje()).count(); | ||
if (max > 0) | ||
this.navn.navnelinje1 = org.getNavn().getNavnelinje()[0]; | ||
if (max > 1) | ||
this.navn.navnelinje2 = org.getNavn().getNavnelinje()[1]; | ||
if (max > 2) | ||
this.navn.navnelinje3 = org.getNavn().getNavnelinje()[2]; | ||
if (max > 3) | ||
this.navn.navnelinje4 = org.getNavn().getNavnelinje()[3]; | ||
if (max > 4) | ||
this.navn.navnelinje5 = org.getNavn().getNavnelinje()[4]; | ||
this.organisasjonDetaljer = new OrganisasjonDetaljer(); | ||
if (org.getOrganisasjonDetaljer() != null && org.getOrganisasjonDetaljer().getRegistreringsDato() != null) { | ||
this.organisasjonDetaljer.registreringsdato = org.getOrganisasjonDetaljer().getRegistreringsDato().atStartOfDay(); | ||
} else { | ||
this.organisasjonDetaljer.registreringsdato = LocalDateTime.now().minusYears(1); | ||
} | ||
} | ||
|
||
private OrganisasjonJson() { | ||
this.type = "Virksomhet"; | ||
} | ||
|
||
public String getOrganisasjonsnummer() { | ||
return organisasjonsnummer; | ||
} | ||
|
||
public String getType() { | ||
return type; | ||
} | ||
|
||
public String getNavn() { | ||
return navn != null ? navn.getNavn() : null; | ||
} | ||
|
||
public LocalDate getRegistreringsdato() { | ||
return organisasjonDetaljer != null ? organisasjonDetaljer.getRegistreringsdato().toLocalDate() : null; | ||
} | ||
|
||
public LocalDate getOpphørsdato() { | ||
return organisasjonDetaljer != null ? organisasjonDetaljer.getOpphoersdato() : null; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "OrganisasjonJson{" + | ||
"organisasjonsnummer='" + organisasjonsnummer + '\'' + | ||
", type='" + type + '\'' + | ||
", navn=" + navn + | ||
", organisasjonDetaljer=" + organisasjonDetaljer + | ||
'}'; | ||
} | ||
|
||
static class Navn { | ||
|
||
@JsonProperty("navnelinje1") | ||
private String navnelinje1; | ||
@JsonProperty("navnelinje2") | ||
private String navnelinje2; | ||
@JsonProperty("navnelinje3") | ||
private String navnelinje3; | ||
@JsonProperty("navnelinje4") | ||
private String navnelinje4; | ||
@JsonProperty("navnelinje5") | ||
private String navnelinje5; | ||
|
||
private Navn() { | ||
} | ||
|
||
private String getNavn() { | ||
return Stream.of(navnelinje1, navnelinje2, navnelinje3, navnelinje4, navnelinje5) | ||
.filter(Objects::nonNull) | ||
.map(String::trim) | ||
.filter(n -> !n.isEmpty()) | ||
.reduce("", (a, b) -> a + " " + b).trim(); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "Navn{" + | ||
"navn='" + getNavn() + '\'' + | ||
'}'; | ||
} | ||
} | ||
|
||
static class OrganisasjonDetaljer { | ||
|
||
@JsonProperty("registreringsdato") | ||
private LocalDateTime registreringsdato; | ||
@JsonProperty("opphoersdato") | ||
private LocalDate opphoersdato; | ||
|
||
private OrganisasjonDetaljer() { | ||
} | ||
|
||
private LocalDateTime getRegistreringsdato() { | ||
return registreringsdato; | ||
} | ||
|
||
private LocalDate getOpphoersdato() { | ||
return opphoersdato; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "OrganisasjonDetaljer{" + | ||
"registreringsdato=" + registreringsdato + | ||
", opphoersdato=" + opphoersdato + | ||
'}'; | ||
} | ||
} | ||
} | ||
|
65 changes: 65 additions & 0 deletions
65
...n-mock/src/main/java/no/nav/tjeneste/virksomhet/organisasjon/rs/OrganisasjonRSV1Mock.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,65 @@ | ||
package no.nav.tjeneste.virksomhet.organisasjon.rs; | ||
|
||
import java.util.Optional; | ||
|
||
import javax.ws.rs.Consumes; | ||
import javax.ws.rs.GET; | ||
import javax.ws.rs.Path; | ||
import javax.ws.rs.PathParam; | ||
import javax.ws.rs.Produces; | ||
import javax.ws.rs.core.Context; | ||
import javax.ws.rs.core.HttpHeaders; | ||
import javax.ws.rs.core.MediaType; | ||
import javax.ws.rs.core.Response; | ||
import javax.ws.rs.core.UriInfo; | ||
|
||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
import io.swagger.annotations.Api; | ||
import io.swagger.annotations.ApiImplicitParam; | ||
import io.swagger.annotations.ApiImplicitParams; | ||
import io.swagger.annotations.ApiOperation; | ||
import no.nav.foreldrepenger.vtp.testmodell.organisasjon.OrganisasjonModell; | ||
import no.nav.foreldrepenger.vtp.testmodell.repo.TestscenarioBuilderRepository; | ||
|
||
@Path("ereg/api/v1/organisasjon") | ||
@Produces(MediaType.APPLICATION_JSON) | ||
@Consumes(MediaType.APPLICATION_JSON) | ||
@Api(tags = {"Enhetsregister Rest"}) | ||
public class OrganisasjonRSV1Mock { | ||
|
||
private static final Logger LOG = LoggerFactory.getLogger(OrganisasjonRSV1Mock.class); | ||
|
||
|
||
@Context | ||
private TestscenarioBuilderRepository scenarioRepository; | ||
|
||
@SuppressWarnings("unused") | ||
@GET | ||
@Path("/{orgnummer}") | ||
@ApiOperation(value = "Henter informasjon for et organisasjonsnummer") | ||
@ApiImplicitParams({ | ||
@ApiImplicitParam(name = "inkluderHierarki", dataType = "string", paramType = "query"), | ||
@ApiImplicitParam(name = "inkluderHistorikk", dataType = "string", paramType = "query") | ||
}) | ||
public Response hentOrganisasjon(@PathParam("orgnummer") String orgnummer, | ||
@Context HttpHeaders httpHeaders, | ||
@Context UriInfo uriInfo) { | ||
if (orgnummer != null) { | ||
LOG.info("EREG REST {}", orgnummer); | ||
Optional<OrganisasjonModell> organisasjonModell = scenarioRepository.getOrganisasjon(orgnummer); | ||
if (organisasjonModell.isPresent()) { | ||
OrganisasjonModell modell = organisasjonModell.get(); | ||
OrganisasjonJson organisasjon = new OrganisasjonJson(modell); | ||
return Response.ok(organisasjon).build(); | ||
} else { | ||
return Response.ok().build(); | ||
} | ||
} else { | ||
throw new IllegalArgumentException("Orgnummer ikke angitt"); | ||
} | ||
} | ||
|
||
} | ||
|
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