Skip to content

Commit

Permalink
TFP-3114, TFP-2847: Versjon 2 av kontrakten mellom Fpabonnent og Fpsa…
Browse files Browse the repository at this point in the history
…k som har støtte for å angi endringstype (OPPRETTET, ANNULLERT, etc). (#212)
  • Loading branch information
jejohnsen authored Aug 10, 2020
1 parent 90f1068 commit 853914b
Show file tree
Hide file tree
Showing 12 changed files with 458 additions and 0 deletions.
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
<module>vl-kontrakt-soeknad</module>
<module>vl-kontrakt-fordel</module>
<module>vl-kontrakt-inntektsmelding</module>
<module>vl-kontrakt-fp-abonnent</module>
<module>vl-kontrakt-fp-feed</module>
<module>vl-kontrakt-fp-tilkjent-ytelse</module>
<module>vl-kontrakt-abonnent</module>
Expand Down
3 changes: 3 additions & 0 deletions vl-kontrakt-fp-abonnent/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Vedtaksløsningen kontrakter

Kontrakten mellom Fp-abonnent og Fp-sak.
52 changes: 52 additions & 0 deletions vl-kontrakt-fp-abonnent/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>no.nav.foreldrepenger.kontrakter</groupId>
<artifactId>fp-kontrakter-root</artifactId>
<version>${revision}${sha1}${changelist}</version>
</parent>

<artifactId>abonnent-v2</artifactId>
<packaging>jar</packaging>
<name>(FPSAK) Kontrakter - abonnent</name>

<properties>
</properties>

<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<!-- for Bean validation -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2;

import java.util.Objects;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;

public class AktørIdDto {

@NotNull
@Digits(integer = 19, fraction = 0)
private String aktørId;

public AktørIdDto() { // NOSONAR
// Jackson
}

public AktørIdDto(String aktørId) {
this.aktørId = aktørId;
}

public String getAktørId() {
return aktørId;
}

@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
} else if (obj == null || !this.getClass().equals(obj.getClass())) {
return false;
}
AktørIdDto other = (AktørIdDto) obj;
return Objects.equals(aktørId, other.aktørId);
}

@Override
public int hashCode() {
return Objects.hash(aktørId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2;

public enum Endringstype {
OPPRETTET,
KORRIGERT,
ANNULLERT,
OPPHOERT;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

import no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl.DødHendelseDto;
import no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl.DødfødselHendelseDto;
import no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl.FødselHendelseDto;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
@JsonSubTypes.Type(value = FødselHendelseDto.class, name = FødselHendelseDto.HENDELSE_TYPE),
@JsonSubTypes.Type(value = DødHendelseDto.class, name = DødHendelseDto.HENDELSE_TYPE),
@JsonSubTypes.Type(value = DødfødselHendelseDto.class, name = DødfødselHendelseDto.HENDELSE_TYPE)
})
public abstract class HendelseDto {

@NotNull
@Pattern(regexp = "^[a-zA-ZæøåÆØÅ_\\-0-9]*")
@Size(min = 1, max = 100)
private String id; // unik per hendelse

@NotNull
@Valid
private Endringstype endringstype;

public HendelseDto() { // NOSONAR
// Jackson
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public Endringstype getEndringstype() {
return endringstype;
}

public void setEndringstype(Endringstype endringstype) {
this.endringstype = endringstype;
}

public abstract String getAvsenderSystem();

public abstract String getHendelsetype();

public abstract List<String> getAlleAktørId();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2;

import java.util.Collections;
import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

public class HendelseWrapperDto {

@NotNull @Valid
private HendelseDto hendelse;

public HendelseWrapperDto() { // NOSONAR
// Jackson
}

public HendelseWrapperDto(@Valid HendelseDto hendelse) {
this.hendelse = hendelse;
}

public HendelseDto getHendelse() {
return hendelse;
}

public List<String> getAlleAktørId() {
return hendelse != null ? hendelse.getAlleAktørId() : Collections.emptyList();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl;

import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import no.nav.foreldrepenger.kontrakter.abonnent.v2.AktørIdDto;
import no.nav.foreldrepenger.kontrakter.abonnent.v2.HendelseDto;

public class DødHendelseDto extends HendelseDto {

public static final String HENDELSE_TYPE = "DØD";
public static final String AVSENDER = "PDL";

@NotNull
@Size(min = 1)
private List<AktørIdDto> aktørId;

@Valid
private LocalDate dødsdato;

public void setAktørId(List<AktørIdDto> aktørId) {
this.aktørId = aktørId;
}

public List<AktørIdDto> getAktørId() {
return this.aktørId;
}

public void setDødsdato(LocalDate dødsdato) {
this.dødsdato = dødsdato;
}

public LocalDate getDødsdato() {
return dødsdato;
}

@Override
public String getHendelsetype() {
return HENDELSE_TYPE;
}

@Override
public String getAvsenderSystem() {
return AVSENDER;
}

@Override
public List<String> getAlleAktørId() {
return aktørId.stream().map(AktørIdDto::getAktørId).collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl;

import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import no.nav.foreldrepenger.kontrakter.abonnent.v2.AktørIdDto;
import no.nav.foreldrepenger.kontrakter.abonnent.v2.HendelseDto;

public class DødfødselHendelseDto extends HendelseDto {

public static final String HENDELSE_TYPE = "DØDFØDSEL";
public static final String AVSENDER = "PDL";

@NotNull
@Size(min = 1)
private List<AktørIdDto> aktørId;

@Valid
private LocalDate dødfødselsdato;

public void setAktørId(List<AktørIdDto> aktørId) {
this.aktørId = aktørId;
}

public List<AktørIdDto> getAktørId() {
return this.aktørId;
}

public void setDødfødselsdato(LocalDate dødfødselsdato) {
this.dødfødselsdato = dødfødselsdato;
}

public LocalDate getDødfødselsdato() {
return dødfødselsdato;
}

@Override
public String getHendelsetype() {
return HENDELSE_TYPE;
}

@Override
public String getAvsenderSystem() {
return AVSENDER;
}

@Override
public List<String> getAlleAktørId() {
return aktørId.stream().map(AktørIdDto::getAktørId).collect(Collectors.toList());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package no.nav.foreldrepenger.kontrakter.abonnent.v2.pdl;

import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import no.nav.foreldrepenger.kontrakter.abonnent.v2.AktørIdDto;
import no.nav.foreldrepenger.kontrakter.abonnent.v2.HendelseDto;

public class FødselHendelseDto extends HendelseDto {

public static final String HENDELSE_TYPE = "FØDSEL";
public static final String AVSENDER = "PDL";

@NotNull
@Size(min = 1)
private List<AktørIdDto> aktørIdForeldre;

@Valid
private LocalDate fødselsdato;

public void setAktørIdForeldre(List<AktørIdDto> aktørIdForeldre) {
this.aktørIdForeldre = aktørIdForeldre;
}

public List<AktørIdDto> getAktørIdForeldre() {
return this.aktørIdForeldre;
}

public void setFødselsdato(LocalDate fødselsdato) {
this.fødselsdato = fødselsdato;
}

public LocalDate getFødselsdato() {
return fødselsdato;
}

@Override
public String getHendelsetype() {
return HENDELSE_TYPE;
}

@Override
public String getAvsenderSystem() {
return AVSENDER;
}

@Override
public List<String> getAlleAktørId() {
return aktørIdForeldre.stream().map(AktørIdDto::getAktørId).collect(Collectors.toList());
}
}
Loading

0 comments on commit 853914b

Please sign in to comment.