RED-2322: Fixed manual redaction are not in redactionLog

This commit is contained in:
Dominique Eifländer 2021-09-30 15:36:57 +02:00
parent 6ed4e2dbc9
commit 44dc33be02
76 changed files with 520 additions and 300 deletions

View File

@ -36,11 +36,6 @@
<artifactId>feign-core</artifactId>
<optional>true</optional>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.persistence/jakarta.persistence-api -->
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
</dependency>
<!-- spring -->

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,13 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,12 +1,12 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,20 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "manual_force_redaction")
public class ManualForceRedaction {
private String annotationId;

View File

@ -1,20 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "manual_image_recategorization")
public class ManualImageRecategorization {
private String annotationId;

View File

@ -1,20 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "manual_legal_basis_change")
public class ManualLegalBasisChange {
private String annotationId;

View File

@ -1,22 +1,18 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "manual_redaction")
public class ManualRedactionEntry {
private String annotationId;

View File

@ -1,12 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.*;
@Data
@Builder
@AllArgsConstructor

View File

@ -5,19 +5,12 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "rectangle")
public class Rectangle {
@Id
@GeneratedValue
private long id;
private float topLeftX;
@ -30,6 +23,4 @@ public class Rectangle {
private int page;
@ManyToOne(fetch = FetchType.LAZY)
private ManualRedactionEntry manualRedaction;
}

View File

@ -1,11 +1,11 @@
package com.iqser.red.service.persistence.service.v1.api.model.annotations;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.audit;
import java.util.HashMap;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.Map;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,22 +1,18 @@
package com.iqser.red.service.persistence.service.v1.api.model.audit;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "audit")
public class AuditModel {
private long recordId;

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.audit;
import java.util.HashMap;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashMap;
import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor

View File

@ -1,12 +1,12 @@
package com.iqser.red.service.persistence.service.v1.api.model.audit;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.common;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Data

View File

@ -1,15 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
@Data
@AllArgsConstructor

View File

@ -1,13 +1,12 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Id;
@Data
@Builder
@ -15,7 +14,6 @@ import javax.persistence.Id;
@AllArgsConstructor
public class DossierAttributeConfig {
@Id
private String id;
private String label;
private boolean editable;

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import java.util.HashSet;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.HashSet;
import java.util.Set;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,12 +1,12 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import java.time.OffsetDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,6 +1,11 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
@Data
@Builder

View File

@ -1,6 +1,10 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor(access = AccessLevel.PRIVATE)

View File

@ -1,17 +1,18 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor

View File

@ -1,10 +1,10 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier;
import java.time.OffsetDateTime;
import lombok.Builder;
import lombok.Data;
import java.time.OffsetDateTime;
@Data
@Builder
public class DeletedDossier {

View File

@ -1,16 +1,17 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.HashSet;
import java.util.Set;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,6 +1,11 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
@Data
@Builder

View File

@ -1,6 +1,11 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
@Data
@Builder

View File

@ -1,25 +1,22 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "file")
public class FileModel {
@JsonProperty("fileId")

View File

@ -1,11 +1,11 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class LegalBasisMapping {

View File

@ -1,12 +1,12 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,13 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@Builder
@NoArgsConstructor

View File

@ -1,10 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.download;
import lombok.*;
import java.util.ArrayList;
import java.util.List;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.download;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,6 +1,10 @@
package com.iqser.red.service.persistence.service.v1.api.model.download;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder

View File

@ -1,14 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.license;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,13 +1,17 @@
package com.iqser.red.service.persistence.service.v1.api.model.license;
import lombok.*;
import java.time.Instant;
import java.time.Year;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,14 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.license;
import java.time.Instant;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.Instant;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,14 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model.notification;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
@Data
@Builder
@AllArgsConstructor

View File

@ -1,15 +1,20 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditModel;
import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditRequest;
import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchRequest;
import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel;
import com.iqser.red.service.persistence.service.v1.api.model.common.Page;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
public interface AuditResource {

View File

@ -1,13 +1,21 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntry;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ResponseStatus(value = HttpStatus.OK)
public interface DictionaryResource {

View File

@ -1,9 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.DigitalSignature;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.DigitalSignature;
@ResponseStatus(value = HttpStatus.OK)
public interface DigitalSignatureResource {

View File

@ -1,11 +1,19 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import java.util.List;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig;
public interface DossierAttributesConfigResource {

View File

@ -1,11 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
public interface DossierAttributesResource {
String REST_PATH = "/dossierAttributes";

View File

@ -1,14 +1,20 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
@ResponseStatus(value = HttpStatus.OK)
public interface DossierResource {

View File

@ -1,12 +1,20 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
public interface DossierTemplateResource {

View File

@ -1,13 +1,18 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadRequest;
import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatus;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ResponseStatus(value = HttpStatus.OK)
public interface DownloadResource {

View File

@ -1,12 +1,20 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
public interface FileAttributesConfigResource {

View File

@ -1,13 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvResponse;
import java.util.Map;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvResponse;
public interface FileAttributesResource {

View File

@ -1,6 +1,5 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
@ -8,6 +7,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
public interface FileStatusProcessingUpdateResource {

View File

@ -1,11 +1,17 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import java.util.List;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
public interface LegalBasisMappingResource {

View File

@ -1,10 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport;
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
public interface LicenseReportResource {

View File

@ -1,10 +1,30 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.*;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.Comment;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.CommentRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ImageRecategorizationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.LegalBasisChangeRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualAddResponse;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualForceRedaction;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualImageRecategorization;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualLegalBasisChange;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.RemoveRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
@ResponseStatus(value = HttpStatus.OK)
public interface ManualRedactionResource {

View File

@ -1,12 +1,20 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ResponseStatus(value = HttpStatus.OK)
public interface NotificationResource {

View File

@ -1,10 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public interface ReanalysisResource {

View File

@ -1,7 +1,5 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
@ -9,6 +7,9 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
@ResponseStatus(value = HttpStatus.OK)
public interface RedactionLogResource {

View File

@ -1,12 +1,17 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.List;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
public interface ReportTemplateResource {

View File

@ -1,9 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
public interface RulesResource {

View File

@ -1,9 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration;
public interface SMTPConfigurationResource {

View File

@ -1,14 +1,21 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
public interface StatusResource {
String STATUS_PATH = "/status";

View File

@ -1,13 +1,18 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import java.util.Set;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.BinaryFileResult;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
@ResponseStatus(value = HttpStatus.OK)
public interface UploadResource {

View File

@ -1,9 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.fasterxml.jackson.databind.JsonNode;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.fasterxml.jackson.databind.JsonNode;
public interface UserPreferenceResource {

View File

@ -1,11 +1,17 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import java.util.List;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage;
@ResponseStatus(value = HttpStatus.OK)
public interface ViewedPagesResource {

View File

@ -1,9 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.resources;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
@ResponseStatus(value = HttpStatus.OK)
public interface WatermarkResource {

View File

@ -46,7 +46,7 @@ public class ManualRedactionEntryEntity {
private OffsetDateTime softDeletedTime;
@OneToMany(mappedBy = "manualRedaction", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@ElementCollection
private List<RectangleEntity> positions = new ArrayList<>();
@ManyToOne

View File

@ -9,27 +9,15 @@ import javax.persistence.*;
@Data
@Builder
@Embeddable
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "rectangle")
public class RectangleEntity {
@Id
@GeneratedValue
private long id;
@Column
private float topLeftX;
@Column
private float topLeftY;
@Column
private float width;
@Column
private float height;
@Column
private int page;
@ManyToOne(fetch = FetchType.LAZY)
private ManualRedactionEntryEntity manualRedaction;
}

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.persistence.management.v1.processor.entity.audit;
import com.iqser.red.service.persistence.service.v1.api.utils.JSONConverter;
import com.iqser.red.service.persistence.management.v1.processor.utils.JSONConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.persistence.management.v1.processor.entity.notification;
import com.iqser.red.service.persistence.service.v1.api.utils.JSONConverter;
import com.iqser.red.service.persistence.management.v1.processor.utils.JSONConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

View File

@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@ -67,9 +68,9 @@ public class ImageRecategorizationPersistenceService {
}
public Set<ManualImageRecategorizationEntity> findRecategorizations(String fileId, boolean includeDeletions) {
public List<ManualImageRecategorizationEntity> findRecategorizations(String fileId, boolean includeDeletions) {
return imageRecategorizationRepository.findByIdFileId(fileId).stream().filter(mre -> includeDeletions || mre.getSoftDeletedTime() == null).collect(Collectors.toSet());
return imageRecategorizationRepository.findByIdFileId(fileId).stream().filter(mre -> includeDeletions || mre.getSoftDeletedTime() == null).collect(Collectors.toList());
}

View File

@ -1,13 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.utils;
package com.iqser.red.service.persistence.management.v1.processor.utils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
@Converter
public class JSONConverter implements AttributeConverter<Map<String, Object>, String> {

View File

@ -1,18 +1,27 @@
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.peristence.v1.server.utils.ManualImageRecategorizationMapper;
import com.iqser.red.service.peristence.v1.server.utils.ManualRedactionMapper;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import javax.transaction.Transactional;
@Service
@RequiredArgsConstructor
public class ManualRedactionProviderService {
@ -24,15 +33,17 @@ public class ManualRedactionProviderService {
private final ImageRecategorizationPersistenceService recategorizationPersistenceService;
private final LegalBasisChangePersistenceService legalBasisChangePersistenceService;
@Transactional
public ManualRedactions getManualRedactions(String fileId) {
Set<ManualRedactionEntry> entriesToAdd = convert(addRedactionPersistenceService.findAddRedactions(fileId, false), ManualRedactionEntry.class);
Set<ManualRedactionEntry> entriesToAdd = convertEntriesToAdd(addRedactionPersistenceService.findAddRedactions(fileId, false));
Set<IdRemoval> removals = convert(removeRedactionPersistenceService.findRemoveRedactions(fileId, false), IdRemoval.class);
Set<ManualForceRedaction> forceRedactions = convert(forceRedactionPersistenceService.findForceRedactions(fileId, false), ManualForceRedaction.class);
Set<ManualImageRecategorization> recategorizations = convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class);
Set<ManualImageRecategorization> recategorizations = new HashSet<>(convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper()));
Set<ManualLegalBasisChange> legalBasisChanges = convert(legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false), ManualLegalBasisChange.class);
@ -48,4 +59,14 @@ public class ManualRedactionProviderService {
}
private Set<ManualRedactionEntry> convertEntriesToAdd(Set<ManualRedactionEntryEntity> source){
return source.stream().map(entry ->
convert(entry, ManualRedactionEntry.class, new ManualRedactionMapper())
).collect(Collectors.toSet());
}
}

View File

@ -1,19 +1,21 @@
package com.iqser.red.service.peristence.v1.server.service;
import org.springframework.stereotype.Service;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class RedactionLogService {
private final FileManagementStorageService fileManagementStorageService;
// private final ManualRedactionService manualRedactionService;
private final ManualRedactionService manualRedactionService;
private final RedactionClient redactionClient;
private final DossierPersistenceService dossierPersistenceService;
private final FileStatusService fileStatusService;
@ -23,13 +25,12 @@ public class RedactionLogService {
if (withManualRedactions) {
var dossier = dossierPersistenceService.getAndValidateDossier(dossierId);
// var manualRedactions = manualRedactionService.getManualRedactions(fileId);
var manualRedactions = manualRedactionService.getManualRedactions(fileId);
var fileStatus = fileStatusService.getStatus(fileId);
return redactionClient.getRedactionLog(RedactionRequest.builder()
.dossierId(dossierId)
.fileId(fileId)
// TODO
// .manualRedactions(manualRedactions)
.manualRedactions(manualRedactions)
.dossierTemplateId(dossier.getDossierTemplateId())
.excludedPages(fileStatus.getExcludedPages())
.build());

View File

@ -28,10 +28,8 @@ import java.util.stream.Collectors;
@RabbitListener(queues = MessagingConfiguration.DOWNLOAD_QUEUE)
public class DownloadMessageReceiver {
private final DownloadProcessorService downloadProcessorService;
private final ObjectMapper objectMapper;
private final RabbitTemplate rabbitTemplate;
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
private final DossierService dossierService;
@RabbitHandler
@ -40,39 +38,11 @@ public class DownloadMessageReceiver {
DownloadJob downloadJob = objectMapper.readValue(in, DownloadJob.class);
log.info("Preparing download for userId: {} and storageId: {}", downloadJob.getUserId(), downloadJob.getStorageId());
DownloadStatusEntity downloadStatus = downloadStatusPersistenceService.getStatus(downloadJob.getStorageId());
downloadStatusPersistenceService.updateStatus(downloadJob.getStorageId(), DownloadStatusValue.GENERATING);
var dossier = downloadStatus.getFiles().iterator().next().getDossier();
List<String> filenameSortedFileIds = downloadStatus.getFiles()
.stream()
.sorted(Comparator.comparing(FileEntity::getFilename))
.map(FileEntity::getId)
.collect(Collectors.toList());
addReportQueue(ReportRequestMessage.builder()
.userId(downloadJob.getUserId())
.downloadId(downloadJob.getStorageId())
.dossierId(dossier.getId())
.dossierTemplateId(dossierService.getDossierById(dossier.getId()).getDossierTemplateId())
.fileIds(filenameSortedFileIds)
.templateIds(dossier.getReportTemplates().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toSet()))
.build(), 1);
downloadProcessorService.processDownload(downloadJob);
}
private void addReportQueue(ReportRequestMessage reportRequestMessage, int priority) {
try {
rabbitTemplate.convertAndSend(MessagingConfiguration.REPORT_QUEUE, objectMapper.writeValueAsString(reportRequestMessage), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
}

View File

@ -0,0 +1,73 @@
package com.iqser.red.service.peristence.v1.server.service.download;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import javax.transaction.Transactional;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.peristence.v1.server.model.DownloadJob;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue;
import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage;
import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor
public class DownloadProcessorService {
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
private final DossierService dossierService;
private final RabbitTemplate rabbitTemplate;
private final ObjectMapper objectMapper;
@Transactional
public void processDownload(DownloadJob downloadJob) {
DownloadStatusEntity downloadStatus = downloadStatusPersistenceService.getStatus(downloadJob.getStorageId());
downloadStatusPersistenceService.updateStatus(downloadJob.getStorageId(), DownloadStatusValue.GENERATING);
var dossier = downloadStatus.getFiles().iterator().next().getDossier();
List<String> filenameSortedFileIds = downloadStatus.getFiles()
.stream()
.sorted(Comparator.comparing(FileEntity::getFilename))
.map(FileEntity::getId)
.collect(Collectors.toList());
addReportQueue(ReportRequestMessage.builder()
.userId(downloadJob.getUserId())
.downloadId(downloadJob.getStorageId())
.dossierId(dossier.getId())
.dossierTemplateId(dossierService.getDossierById(dossier.getId()).getDossierTemplateId())
.fileIds(filenameSortedFileIds)
.templateIds(dossier.getReportTemplates().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toSet()))
.build(), 1);
}
private void addReportQueue(ReportRequestMessage reportRequestMessage, int priority) {
try {
rabbitTemplate.convertAndSend(MessagingConfiguration.REPORT_QUEUE, objectMapper.writeValueAsString(reportRequestMessage), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
}

View File

@ -1,7 +1,10 @@
package com.iqser.red.service.peristence.v1.server.utils;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle;
import java.util.function.BiConsumer;
@ -10,6 +13,7 @@ public class ManualRedactionMapper implements BiConsumer<ManualRedactionEntryEnt
@Override
public void accept(ManualRedactionEntryEntity manualRedactionEntryEntity, ManualRedactionEntry manualRedactionEntry) {
manualRedactionEntry.setType(manualRedactionEntryEntity.getTypeId().substring(0, manualRedactionEntryEntity.getTypeId().indexOf(":")));
manualRedactionEntry.setPositions(convert(manualRedactionEntryEntity.getPositions(), Rectangle.class));
}
}

View File

@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.List;
public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
@Autowired
@ -51,7 +53,11 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedComment.getText()).isEqualTo("test");
var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), AddRedactionRequest.builder().addToDictionary(true)
var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), AddRedactionRequest.builder()
.positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build()))
.addToDictionary(true)
.addToDossierDictionary(false).status(AnnotationStatus.REQUESTED).typeId(type.getId()).user("user").reason("1").value("test").legalBasis("1").build());
var loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId());
assertThat(loadedAddRedaction.getUser()).isEqualTo("user");