Skip to content

Commit

Permalink
fix:lagt på json annotations på rest api for validering, forover-komp…
Browse files Browse the repository at this point in the history
…atiblitet (#26)
  • Loading branch information
frode-carlsen authored Mar 16, 2020
1 parent 93889d4 commit 2bc56bf
Show file tree
Hide file tree
Showing 10 changed files with 181 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,36 @@

import java.util.Optional;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class FeiletProsessTaskDataDto implements ProsessTaskDataInfo {

@JsonProperty(value="sisteKjøringServerProsess")
@Size(max=100)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String sisteKjøringServerProsess;

@JsonProperty(value="sisteFeilTekst")
@Size(max=100_000)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String sisteFeilTekst;

@JsonProperty(value="feiledeForsøk")
private Integer feiledeForsøk;

@JsonUnwrapped
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,23 @@
import java.util.Optional;
import java.util.Properties;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskSporingsloggId;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class ProsessTaskDataDto implements ProsessTaskDataInfo {

Expand All @@ -16,14 +29,44 @@ public class ProsessTaskDataDto implements ProsessTaskDataInfo {
private static final String FAGSAK_ID = "fagsakId";
private static final String PNR_ID = "personidentifikator";

@JsonProperty(value = "id", required = true)
private Long id;

@JsonProperty(value = "taskType", required = true)
@Size(max = 200)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String taskType;

@JsonProperty(value = "nesteKjøringEtter")
@Valid
private LocalDateTime nesteKjøringEtter;

@JsonProperty(value = "gruppe", required = true)
@Size(max = 200)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String gruppe;

@JsonProperty(value = "sekvens", required = true)
@Size(max = 200)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String sekvens;

@JsonProperty(value = "status", required = true)
@Size(max = 20)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String status;

@JsonProperty(value = "sistKjørt")
@Valid
private LocalDateTime sistKjørt;

@JsonProperty(value = "sisteFeilKode")
@Size(max = 200)
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String sisteFeilKode;

@JsonProperty(value = "taskParametre")
@Size(max = 20)
private Properties taskParametre = new Properties();

public ProsessTaskDataDto() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,43 @@

import java.util.Optional;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.log.sporingslogg.Sporingsdata;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class ProsessTaskDataPayloadDto implements ProsessTaskDataInfo {

@JsonProperty(value = "payload")
private String payload;

@JsonProperty(value = "sisteKjøringServerProsess")
@Size(max = 100)
private String sisteKjøringServerProsess;

@JsonProperty(value = "sisteFeilTekst")
@Size(max = 100_000)
private String sisteFeilTekst;

@JsonProperty(value = "feiledeForsøk")
private Integer feiledeForsøk;

@JsonUnwrapped
@Valid
private ProsessTaskDataDto prosessTaskDataDto;


public ProsessTaskDataPayloadDto() {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.sikkerhet.abac.AbacDataAttributter;
import no.nav.vedtak.sikkerhet.abac.AbacDto;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class ProsessTaskIdDto {

@JsonProperty(value = "prosessTaskId", required = true)
@NotNull
@Min(0)
@Max(Long.MAX_VALUE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,24 @@
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
public class ProsessTaskOpprettInputDto {

@JsonProperty(value="taskType", required=true)
@NotNull
@Size(min = 1, max = 100)
@Pattern(regexp = "^[a-zA-ZæøåÆØÅ0-9_.\\-]*$")
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String taskType;

@JsonProperty(value="taskParametre", required = true)
@NotNull
@Size(max = 100)
@Valid
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,30 @@
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema(description = "Informasjon for restart av en eksisterende prosesstask")
public class ProsessTaskRestartInputDto {

@JsonProperty(value = "prosessTaskId", required = true)
@Min(0)
@Max(Long.MAX_VALUE)
@NotNull
private Long prosessTaskId;

@Schema(
description = "Nåværende status. Angis hviss prosessen som skal restartes har en annen status enn KLAR.",
allowableValues = "VENTER_SVAR, SUSPENDERT, FEILET"
)
@JsonAlias(value = { "naaVaarendeStatus" })
@JsonProperty(value = "inneværendeStatus", required = true)
@Schema(description = "Nåværende status. Angis hviss prosessen som skal restartes har en annen status enn KLAR.", allowableValues = "VENTER_SVAR, SUSPENDERT, FEILET")
@Size(max = 15)
@Pattern(regexp = "VENTER_SVAR|FEILET|SUSPENDERT")
private String naaVaaerendeStatus;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,33 @@
import java.time.LocalDateTime;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema(description = "Resultatet av asynkron-restart av en eksisterende prosesstask")
public class ProsessTaskRestartResultatDto {

@JsonProperty(value = "prosessTaskId", required = true)
@NotNull
private Long prosessTaskId;

@JsonProperty(value = "prosessTaskStatus", required = true)
@NotNull
@Schema(description = "Nåværende status (KLAR)")
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
private String prosessTaskStatus;

@JsonProperty(value = "nesteKjoeretidspunkt", required = true)
@NotNull
@Schema(description = "Kjøretidspunkt for restart av prosessen")
private LocalDateTime nesteKjoeretidspunkt;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,30 @@
import java.util.ArrayList;
import java.util.List;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema(description = "Resultatet av asynkron-restart av feilede prosesstasks")
public class ProsessTaskRetryAllResultatDto {

@JsonInclude(value = Include.ALWAYS)
@JsonProperty(value="prosessTaskIds")
@Schema(description = "Prosesstasks som restartes")
private List<Long> prosessTaskIds = new ArrayList<>();

@Valid
private List<@NotNull Long> prosessTaskIds = new ArrayList<>();

public ProsessTaskRetryAllResultatDto() { // NOSONAR Input-dto, ingen behov for initialisering
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,24 @@
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;
import no.nav.vedtak.util.InputValideringRegex;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class ProsessTaskStatusDto {

@JsonProperty(value = "prosessTaskStatusName", required = true)
@NotNull
@Pattern(regexp = "^[\\p{Alnum}_.\\-]*$")
@Size(min = 1, max = 100)
@Pattern(regexp = InputValideringRegex.KODEVERK)
private String prosessTaskStatusName;

public ProsessTaskStatusDto() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,34 @@
import java.util.List;

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

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.v3.oas.annotations.media.Schema;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, fieldVisibility = Visibility.ANY)
@Schema
public class SokeFilterDto {

@JsonProperty(value = "prosessTaskStatuser")
@Size(max = 10)
@Valid
private List<ProsessTaskStatusDto> prosessTaskStatuser = new ArrayList<>();
private List<@NotNull ProsessTaskStatusDto> prosessTaskStatuser = new ArrayList<>();

@JsonProperty(value = "sisteKjoeretidspunktFraOgMed")
@Valid
private LocalDateTime sisteKjoeretidspunktFraOgMed = LocalDateTime.now().minusHours(24);

@JsonProperty(value = "sisteKjoeretidspunktTilOgMed")
@Valid
private LocalDateTime sisteKjoeretidspunktTilOgMed = LocalDateTime.now();

public SokeFilterDto() {
Expand Down

0 comments on commit 2bc56bf

Please sign in to comment.