Initial Commit
This commit is contained in:
commit
a2ee61c087
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
!.gitignore
|
||||||
|
*.project
|
||||||
|
*.classpath
|
||||||
|
**/.settings/
|
||||||
|
**/target/
|
||||||
|
**/logs/
|
||||||
|
**/.metadata/
|
||||||
|
**/bin/
|
||||||
|
**/tmp/
|
||||||
|
**/.apt_generated/
|
||||||
|
|
||||||
|
|
||||||
|
.factorypath
|
||||||
|
.springBeans
|
||||||
|
.checkstyle
|
||||||
|
.eclipse-pmd
|
||||||
|
.pmdruleset.xml
|
||||||
|
.pmd
|
||||||
|
|
||||||
|
**/.idea/
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
*.pid
|
||||||
|
*~
|
||||||
|
**/.DS_Store/
|
||||||
|
**/.DS_Store
|
||||||
|
**/classpath-data.json
|
||||||
|
**/dependencies-and-licenses-overview.txt
|
||||||
12
CHANGELOG.md
Normal file
12
CHANGELOG.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Removed
|
||||||
37
bamboo-specs/pom.xml
Normal file
37
bamboo-specs/pom.xml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<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/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>com.atlassian.bamboo</groupId>
|
||||||
|
<artifactId>bamboo-specs-parent</artifactId>
|
||||||
|
<version>7.2.2</version>
|
||||||
|
<relativePath/>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>bamboo-specs</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.atlassian.bamboo</groupId>
|
||||||
|
<artifactId>bamboo-specs-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.atlassian.bamboo</groupId>
|
||||||
|
<artifactId>bamboo-specs</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Test dependencies -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- run 'mvn test' to perform offline validation of the plan -->
|
||||||
|
<!-- run 'mvn -Ppublish-specs' to upload the plan to your Bamboo server -->
|
||||||
|
</project>
|
||||||
118
bamboo-specs/src/main/java/buildjob/PlanSpec.java
Normal file
118
bamboo-specs/src/main/java/buildjob/PlanSpec.java
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
package buildjob;
|
||||||
|
|
||||||
|
import com.atlassian.bamboo.specs.api.BambooSpec;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.BambooKey;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.permission.PermissionType;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.permission.Permissions;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.permission.PlanPermissions;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.Job;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.Plan;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.PlanIdentifier;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.Stage;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.branches.BranchCleanup;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.branches.PlanBranchManagement;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.configuration.ConcurrentBuilds;
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.project.Project;
|
||||||
|
import com.atlassian.bamboo.specs.builders.task.*;
|
||||||
|
import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger;
|
||||||
|
import com.atlassian.bamboo.specs.model.task.InjectVariablesScope;
|
||||||
|
import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties.Location;
|
||||||
|
import com.atlassian.bamboo.specs.util.BambooServer;
|
||||||
|
|
||||||
|
import static com.atlassian.bamboo.specs.builders.task.TestParserTask.createJUnitParserTask;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plan configuration for Bamboo.
|
||||||
|
* Learn more on: <a href="https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs">https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs</a>
|
||||||
|
*/
|
||||||
|
@BambooSpec
|
||||||
|
public class PlanSpec {
|
||||||
|
|
||||||
|
private static final String SERVICE_NAME = "persistence-service";
|
||||||
|
|
||||||
|
private static final String SERVICE_KEY = SERVICE_NAME.toUpperCase().replaceAll("-", "");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run main to publish plan on Bamboo
|
||||||
|
*/
|
||||||
|
public static void main(final String[] args) throws Exception {
|
||||||
|
//By default credentials are read from the '.credentials' file.
|
||||||
|
BambooServer bambooServer = new BambooServer("http://localhost:8085");
|
||||||
|
|
||||||
|
Plan plan = new PlanSpec().createPlan();
|
||||||
|
bambooServer.publish(plan);
|
||||||
|
PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier());
|
||||||
|
bambooServer.publish(planPermission);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) {
|
||||||
|
Permissions permission = new Permissions()
|
||||||
|
.userPermissions("atlbamboo", PermissionType.EDIT, PermissionType.VIEW, PermissionType.ADMIN, PermissionType.CLONE, PermissionType.BUILD)
|
||||||
|
.groupPermissions("red-backend", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD)
|
||||||
|
.loggedInUserPermissions(PermissionType.VIEW)
|
||||||
|
.anonymousUserPermissionView();
|
||||||
|
return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Project project() {
|
||||||
|
return new Project()
|
||||||
|
.name("RED")
|
||||||
|
.key(new BambooKey("RED"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plan createPlan() {
|
||||||
|
return new Plan(
|
||||||
|
project(),
|
||||||
|
SERVICE_NAME, new BambooKey(SERVICE_KEY))
|
||||||
|
.description("Plan created from (enter repository url of your plan)")
|
||||||
|
.stages(new Stage("Default Stage")
|
||||||
|
.jobs(new Job("Default Job",
|
||||||
|
new BambooKey("JOB1"))
|
||||||
|
.tasks(
|
||||||
|
new ScriptTask()
|
||||||
|
.description("Clean")
|
||||||
|
.inlineBody("#!/bin/bash\n" +
|
||||||
|
"set -e\n" +
|
||||||
|
"rm -rf ./*"),
|
||||||
|
new VcsCheckoutTask()
|
||||||
|
.description("Checkout Default Repository")
|
||||||
|
.checkoutItems(new CheckoutItem().defaultRepository()),
|
||||||
|
new ScriptTask()
|
||||||
|
.description("Build")
|
||||||
|
.location(Location.FILE)
|
||||||
|
.fileFromPath("bamboo-specs/src/main/resources/scripts/build-java.sh")
|
||||||
|
.argument(SERVICE_NAME),
|
||||||
|
createJUnitParserTask()
|
||||||
|
.description("Resultparser")
|
||||||
|
.resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml")
|
||||||
|
.enabled(true),
|
||||||
|
new InjectVariablesTask()
|
||||||
|
.description("Inject git Tag")
|
||||||
|
.path("git.tag")
|
||||||
|
.namespace("g")
|
||||||
|
.scope(InjectVariablesScope.LOCAL),
|
||||||
|
new VcsTagTask()
|
||||||
|
.description("${bamboo.g.gitTag}")
|
||||||
|
.tagName("${bamboo.g.gitTag}")
|
||||||
|
.defaultRepository())
|
||||||
|
.dockerConfiguration(
|
||||||
|
new DockerConfiguration()
|
||||||
|
.image("nexus.iqser.com:5001/infra/maven:3.6.2-jdk-13-3.0.0")
|
||||||
|
.dockerRunArguments("--net=host")
|
||||||
|
.volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml")
|
||||||
|
.volume("/var/run/docker.sock", "/var/run/docker.sock")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.linkedRepositories("RED / " + SERVICE_NAME)
|
||||||
|
.pluginConfigurations(new ConcurrentBuilds()
|
||||||
|
.maximumNumberOfConcurrentBuilds(1))
|
||||||
|
.triggers(new BitbucketServerTrigger())
|
||||||
|
.planBranchManagement(new PlanBranchManagement()
|
||||||
|
.createForVcsBranch()
|
||||||
|
.delete(new BranchCleanup()
|
||||||
|
.whenInactiveInRepositoryAfterDays(14))
|
||||||
|
.notificationForCommitters());
|
||||||
|
}
|
||||||
|
}
|
||||||
51
bamboo-specs/src/main/resources/scripts/build-java.sh
Executable file
51
bamboo-specs/src/main/resources/scripts/build-java.sh
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SERVICE_NAME=$1
|
||||||
|
|
||||||
|
if [[ "${bamboo_version_tag}" = "dev" ]]
|
||||||
|
then
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
|
||||||
|
--no-transfer-progress \
|
||||||
|
clean install \
|
||||||
|
-Djava.security.egd=file:/dev/./urandomelse
|
||||||
|
else
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
--no-transfer-progress \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
|
||||||
|
versions:set \
|
||||||
|
-DnewVersion=${bamboo_version_tag}
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
--no-transfer-progress \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
|
||||||
|
versions:set \
|
||||||
|
-DnewVersion=${bamboo_version_tag}
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \
|
||||||
|
--no-transfer-progress \
|
||||||
|
clean deploy \
|
||||||
|
-e \
|
||||||
|
-DdeployAtEnd=true \
|
||||||
|
-Dmaven.wagon.http.ssl.insecure=true \
|
||||||
|
-Dmaven.wagon.http.ssl.allowall=true \
|
||||||
|
-Dmaven.wagon.http.ssl.ignore.validity.dates=true \
|
||||||
|
-DaltDeploymentRepository=iqser_release::default::https://nexus.iqser.com/repository/red-platform-releases
|
||||||
|
fi
|
||||||
|
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
--no-transfer-progress \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
|
||||||
|
package
|
||||||
|
|
||||||
|
${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \
|
||||||
|
--no-transfer-progress \
|
||||||
|
-f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \
|
||||||
|
docker:push
|
||||||
|
|
||||||
|
if [[ "${bamboo_version_tag}" = "dev" ]]
|
||||||
|
then
|
||||||
|
echo "gitTag=${bamboo_planRepository_1_branch}_${bamboo_buildNumber}" > git.tag
|
||||||
|
else
|
||||||
|
echo "gitTag=${bamboo_version_tag}" > git.tag
|
||||||
|
fi
|
||||||
17
bamboo-specs/src/test/java/buildjob/PlanSpecTest.java
Normal file
17
bamboo-specs/src/test/java/buildjob/PlanSpecTest.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package buildjob;
|
||||||
|
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.atlassian.bamboo.specs.api.builders.plan.Plan;
|
||||||
|
import com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException;
|
||||||
|
import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders;
|
||||||
|
|
||||||
|
public class PlanSpecTest {
|
||||||
|
@Test
|
||||||
|
public void checkYourPlanOffline() throws PropertiesValidationException {
|
||||||
|
Plan plan = new PlanSpec().createPlan();
|
||||||
|
|
||||||
|
EntityPropertiesBuilders.build(plan);
|
||||||
|
}
|
||||||
|
}
|
||||||
96
persistence-service-image-v1/pom.xml
Normal file
96
persistence-service-image-v1/pom.xml
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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">
|
||||||
|
<parent>
|
||||||
|
<groupId>com.iqser.red</groupId>
|
||||||
|
<artifactId>platform-docker-dependency</artifactId>
|
||||||
|
<version>1.0.1</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>persistence-service-image-v1</artifactId>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<service.server>persistence-service-server-v1</service.server>
|
||||||
|
<platform.jar>${service.server}.jar</platform.jar>
|
||||||
|
<docker.skip.push>false</docker.skip.push>
|
||||||
|
<docker.image.name>${docker.image.prefix}/${service.server}</docker.image.name>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>exec-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>io.fabric8</groupId>
|
||||||
|
<artifactId>docker-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>download-platform-jar</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<dependency>
|
||||||
|
<groupId>${project.groupId}</groupId>
|
||||||
|
<artifactId>${service.server}</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<overWrite>true</overWrite>
|
||||||
|
<destFileName>${platform.jar}</destFileName>
|
||||||
|
</dependency>
|
||||||
|
</artifactItems>
|
||||||
|
<outputDirectory>${docker.build.directory}</outputDirectory>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>io.fabric8</groupId>
|
||||||
|
<artifactId>docker-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<images>
|
||||||
|
<image>
|
||||||
|
<name>${docker.image.name}</name>
|
||||||
|
<build>
|
||||||
|
<dockerFileDir>${docker.build.directory}</dockerFileDir>
|
||||||
|
<args>
|
||||||
|
<PLATFORM_JAR>${platform.jar}</PLATFORM_JAR>
|
||||||
|
</args>
|
||||||
|
<tags>
|
||||||
|
<tag>${docker.image.version}</tag>
|
||||||
|
<tag>latest</tag>
|
||||||
|
</tags>
|
||||||
|
</build>
|
||||||
|
</image>
|
||||||
|
</images>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
9
persistence-service-image-v1/src/main/docker/Dockerfile
Normal file
9
persistence-service-image-v1/src/main/docker/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM red/base-image:1.0.0
|
||||||
|
|
||||||
|
ARG PLATFORM_JAR
|
||||||
|
|
||||||
|
ENV PLATFORM_JAR ${PLATFORM_JAR}
|
||||||
|
|
||||||
|
ENV USES_ELASTICSEARCH false
|
||||||
|
|
||||||
|
COPY ["${PLATFORM_JAR}", "/"]
|
||||||
55
persistence-service-v1/persistence-service-api-v1/pom.xml
Normal file
55
persistence-service-v1/persistence-service-api-v1/pom.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<artifactId>persistence-service-v1</artifactId>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>persistence-service-api-v1</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<artifactId>redaction-service-api-v1</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<artifactId>persistence-service-api-v1</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<!-- This dependency contains annotations that are used in specifying REST endpoints. -->
|
||||||
|
<!-- It is optional since not all users of this API might use Feign. -->
|
||||||
|
<groupId>io.github.openfeign</groupId>
|
||||||
|
<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 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- test -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.commons</groupId>
|
||||||
|
<artifactId>jackson-commons</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Rectangle;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class AddRedactionRequest {
|
||||||
|
|
||||||
|
private String user;
|
||||||
|
private String type;
|
||||||
|
private String value;
|
||||||
|
private String reason;
|
||||||
|
private String legalBasis;
|
||||||
|
private boolean addToDictionary;
|
||||||
|
private boolean addToDossierDictionary;
|
||||||
|
private AnnotationStatus status;
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private List<Rectangle> positions = new ArrayList<>();
|
||||||
|
|
||||||
|
private String comment;
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class BinaryFileRequest {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private byte[] data;
|
||||||
|
@NonNull
|
||||||
|
private String filename;
|
||||||
|
@NonNull
|
||||||
|
private String dossierId;
|
||||||
|
|
||||||
|
private String uploader;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class BinaryFileResult {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private byte[] data;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private String filename;
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class CommentRequest {
|
||||||
|
|
||||||
|
private String user;
|
||||||
|
private String text;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierStatus;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.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;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class CreateOrUpdateDossierRequest {
|
||||||
|
|
||||||
|
private String dossierName;
|
||||||
|
|
||||||
|
private OffsetDateTime date;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private DossierStatus status;
|
||||||
|
|
||||||
|
private String ownerId;
|
||||||
|
|
||||||
|
private Set<String> memberIds = new HashSet<>();
|
||||||
|
|
||||||
|
private Set<String> approverIds = new HashSet<>();
|
||||||
|
|
||||||
|
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||||
|
|
||||||
|
private boolean watermarkEnabled;
|
||||||
|
|
||||||
|
private OffsetDateTime dueDate;
|
||||||
|
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
private List<String> reportTemplateIds = new ArrayList<>();
|
||||||
|
|
||||||
|
private String requestingUser;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DownloadFileType;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CreateOrUpdateDossierTemplateRequest {
|
||||||
|
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
private OffsetDateTime dateAdded;
|
||||||
|
|
||||||
|
private OffsetDateTime dateModified;
|
||||||
|
|
||||||
|
private String createdBy;
|
||||||
|
|
||||||
|
private String modifiedBy;
|
||||||
|
|
||||||
|
private OffsetDateTime validFrom;
|
||||||
|
|
||||||
|
private OffsetDateTime validTo;
|
||||||
|
|
||||||
|
private String requestingUser;
|
||||||
|
|
||||||
|
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||||
|
|
||||||
|
private List<String> reportTemplateIds = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class DeletedDossier {
|
||||||
|
|
||||||
|
private OffsetDateTime deletionTime;
|
||||||
|
private String dossierId;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class DigitalSignatureUpdateModel {
|
||||||
|
|
||||||
|
private String location;
|
||||||
|
private String reason;
|
||||||
|
private String contactInfo;
|
||||||
|
private String certificateName;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class DownloadRequest {
|
||||||
|
|
||||||
|
private String userId;
|
||||||
|
private String dossierId;
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private List<String> fileIds = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
public enum FileType {
|
||||||
|
ORIGIN(".pdf"), REDACTION_LOG(".json"), SECTION_GRID(".json"), TEXT(".json");
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final String extension;
|
||||||
|
|
||||||
|
FileType(String extension) {
|
||||||
|
this.extension = extension;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ForceRedactionRequest {
|
||||||
|
|
||||||
|
private String annotationId;
|
||||||
|
private String user;
|
||||||
|
private AnnotationStatus status;
|
||||||
|
private String legalBasis;
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ImageRecategorizationRequest {
|
||||||
|
|
||||||
|
private String annotationId;
|
||||||
|
private String user;
|
||||||
|
private AnnotationStatus status;
|
||||||
|
private String type;
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ImportCsvRequest {
|
||||||
|
|
||||||
|
private byte[] csvFile;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ImportCsvResponse {
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<String> affectedFileIds = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<String> foundAttributes = new HashSet<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class JSONPrimitive<T> {
|
||||||
|
|
||||||
|
private final T value;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class LegalBasisChangeRequest {
|
||||||
|
|
||||||
|
private String annotationId;
|
||||||
|
private String user;
|
||||||
|
private AnnotationStatus status;
|
||||||
|
private String legalBasis;
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class LicenseReport {
|
||||||
|
|
||||||
|
private int numberOfAnalyzedFiles;
|
||||||
|
private int numberOfOcrFiles;
|
||||||
|
|
||||||
|
private int numberOfDossiers;
|
||||||
|
|
||||||
|
private int numberOfAnalyzedPages;
|
||||||
|
private int numberOfOcrPages;
|
||||||
|
|
||||||
|
private int numberOfAnalyses; // includes reanalysis counts
|
||||||
|
|
||||||
|
private Instant startDate;
|
||||||
|
|
||||||
|
private Instant endDate;
|
||||||
|
|
||||||
|
private int offset;
|
||||||
|
|
||||||
|
private int limit;
|
||||||
|
|
||||||
|
private List<ReportData> data = new ArrayList<>();
|
||||||
|
|
||||||
|
// To be used for consecutive/paged calls
|
||||||
|
private String requestId;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.Year;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@EqualsAndHashCode(of = "requestId")
|
||||||
|
public class LicenseReportRequest {
|
||||||
|
|
||||||
|
private String requestId;
|
||||||
|
|
||||||
|
private Instant startDate;
|
||||||
|
|
||||||
|
private Instant endDate;
|
||||||
|
|
||||||
|
private List<String> dossierIds = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
public Instant getStartDate() {
|
||||||
|
|
||||||
|
if (startDate == null) {
|
||||||
|
startDate = Year.of(getEndDate().atOffset(ZoneOffset.UTC).getYear())
|
||||||
|
.atMonth(1)
|
||||||
|
.atDay(1)
|
||||||
|
.atStartOfDay()
|
||||||
|
.toInstant(ZoneOffset.UTC);
|
||||||
|
}
|
||||||
|
return startDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public Instant getEndDate() {
|
||||||
|
|
||||||
|
if (endDate == null) {
|
||||||
|
endDate = Instant.now();
|
||||||
|
}
|
||||||
|
return endDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ManualAddResponse {
|
||||||
|
|
||||||
|
private String annotationId;
|
||||||
|
private String commentId;
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.*;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ManualRedactions {
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<IdRemoval> idsToRemove = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<ManualRedactionEntry> entriesToAdd = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<ManualForceRedaction> forceRedactions = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<ManualImageRecategorization> imageRecategorization = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Set<ManualLegalBasisChange> legalBasisChanges = new HashSet<>();
|
||||||
|
|
||||||
|
@Builder.Default
|
||||||
|
private Map<String, List<Comment>> comments = new HashMap<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationStatus;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class RemoveRedactionRequest {
|
||||||
|
|
||||||
|
private String annotationId;
|
||||||
|
private String user;
|
||||||
|
private AnnotationStatus status;
|
||||||
|
private boolean removeFromDictionary;
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ReportData {
|
||||||
|
|
||||||
|
private String dossier;
|
||||||
|
private String fileName;
|
||||||
|
private Instant addedDate;
|
||||||
|
private Instant lastUpdatedDate;
|
||||||
|
private Instant deletedDate;
|
||||||
|
private int numberOfAnalyzedPages;
|
||||||
|
private int numberOfOcrPages;
|
||||||
|
private FileStatus status;
|
||||||
|
private int analysisCount;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ReportTemplateDownload {
|
||||||
|
|
||||||
|
private byte[] file;
|
||||||
|
}
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class ReportTemplateUploadRequest {
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private byte[] template;
|
||||||
|
@NonNull
|
||||||
|
private String dossierTemplateId;
|
||||||
|
@NonNull
|
||||||
|
private String fileName;
|
||||||
|
@NonNull
|
||||||
|
private boolean multiFileReport;
|
||||||
|
@NonNull
|
||||||
|
private boolean activeByDefault;
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class SetDownloadedRequest {
|
||||||
|
|
||||||
|
private String userId;
|
||||||
|
private String storageId;
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Embeddable;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Embeddable
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AnnotationId implements Serializable {
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String id;
|
||||||
|
@Column
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
public enum AnnotationStatus {
|
||||||
|
REQUESTED,
|
||||||
|
APPROVED,
|
||||||
|
DECLINED
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class Comment {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private long id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String annotationId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime date;
|
||||||
|
@Column
|
||||||
|
private String text;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class IdRemoval {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private AnnotationId id;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private AnnotationStatus status;
|
||||||
|
@Column
|
||||||
|
private boolean removeFromDictionary;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime requestDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime processedDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ManualForceRedaction {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private AnnotationId id;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private AnnotationStatus status;
|
||||||
|
@Column
|
||||||
|
private String legalBasis;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime requestDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime processedDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ManualImageRecategorization {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private AnnotationId id;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private AnnotationStatus status;
|
||||||
|
@Column
|
||||||
|
private String type;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime requestDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime processedDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EmbeddedId;
|
||||||
|
import javax.persistence.ManyToOne;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class ManualLegalBasisChange {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private AnnotationId id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private AnnotationStatus status;
|
||||||
|
@Column
|
||||||
|
private String legalBasis;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime requestDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime processedDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "manual_redaction")
|
||||||
|
public class ManualRedactionEntry {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private AnnotationId id;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private String typeId;
|
||||||
|
@Column
|
||||||
|
private String value;
|
||||||
|
@Column
|
||||||
|
private String reason;
|
||||||
|
@Column
|
||||||
|
private String legalBasis;
|
||||||
|
@Column
|
||||||
|
private AnnotationStatus status;
|
||||||
|
@Column
|
||||||
|
private boolean addToDictionary;
|
||||||
|
@Column
|
||||||
|
private boolean addToDossierDictionary;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime requestDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime processedDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "manualRedaction", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
||||||
|
private List<Rectangle> positions = new ArrayList<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private File fileStatus;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "rectangle")
|
||||||
|
public class Rectangle {
|
||||||
|
|
||||||
|
@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 ManualRedactionEntry manualRedaction;
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.annotations;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "viewed_page")
|
||||||
|
public class ViewedPage {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private ViewedPageId id;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime viewedTime;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private File file;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Embeddable
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class ViewedPageId implements Serializable {
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String fileId;
|
||||||
|
@Column
|
||||||
|
private int page;
|
||||||
|
@Column
|
||||||
|
private String userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "color_configuration")
|
||||||
|
public class Colors {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String defaultColor;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String requestAdd;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String requestRemove;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String notRedacted;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String analysisColor;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String updatedColor;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String dictionaryRequestColor;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String manualRedactionColor;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String previewColor;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "dictionary_entry")
|
||||||
|
public class DictionaryEntry {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private long entryId;
|
||||||
|
@Column
|
||||||
|
private String value;
|
||||||
|
@Column
|
||||||
|
private long version;
|
||||||
|
@Column
|
||||||
|
private boolean deleted;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Type type;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Table(name = "digital_signature")
|
||||||
|
public class DigitalSignature {
|
||||||
|
|
||||||
|
public final static String ID = "CONFIG_ID";
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private final String id = DigitalSignature.ID;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String location;
|
||||||
|
@Column
|
||||||
|
private String reason;
|
||||||
|
@Column
|
||||||
|
private String contactInfo;
|
||||||
|
@Column
|
||||||
|
private String certificateName;
|
||||||
|
@Column
|
||||||
|
private String password;
|
||||||
|
@Column
|
||||||
|
@Lob
|
||||||
|
private byte[] privateKey;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class FileAttributesGeneralConfiguration {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column
|
||||||
|
private String dossierTemplateId;
|
||||||
|
@Column
|
||||||
|
private String filenameMappingColumnHeaderName;
|
||||||
|
@Column
|
||||||
|
private String delimiter;
|
||||||
|
|
||||||
|
@OneToOne
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "legal_basis")
|
||||||
|
public class LegalBasis {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private long id;
|
||||||
|
@Column
|
||||||
|
private String name;
|
||||||
|
@Column
|
||||||
|
private String description;
|
||||||
|
@Column
|
||||||
|
private String reason;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private LegalBasisMapping legalBasisMapping;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "legal_basis_mapping")
|
||||||
|
public class LegalBasisMapping {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String dossierTemplateId;
|
||||||
|
@Column
|
||||||
|
private long version;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "legalBasisMapping", cascade = CascadeType.ALL)
|
||||||
|
private List<LegalBasis> legalBasis = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Entity
|
||||||
|
@Table(name = "rule_set")
|
||||||
|
public class RuleSet {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long version;
|
||||||
|
|
||||||
|
@Lob
|
||||||
|
@Column(name = "value", columnDefinition="CLOB")
|
||||||
|
private String value;
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "smtp_configuration")
|
||||||
|
public class SMTPConfiguration {
|
||||||
|
|
||||||
|
public final static String ID = "CONFIG_ID";
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private final String id = SMTPConfiguration.ID;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String from;
|
||||||
|
@Column
|
||||||
|
private String fromDisplayName;
|
||||||
|
@Column
|
||||||
|
private String envelopeFrom;
|
||||||
|
@Column
|
||||||
|
private String host;
|
||||||
|
@Column
|
||||||
|
private Integer port;
|
||||||
|
@Column
|
||||||
|
private String replyTo;
|
||||||
|
@Column
|
||||||
|
private String replyToDisplayName;
|
||||||
|
@Column
|
||||||
|
private boolean ssl;
|
||||||
|
@Column
|
||||||
|
private boolean starttls;
|
||||||
|
|
||||||
|
// if AUTH is true, following must also be set
|
||||||
|
@Column
|
||||||
|
private boolean auth;
|
||||||
|
@Column
|
||||||
|
private String user;
|
||||||
|
@Column
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,56 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static javax.persistence.CascadeType.ALL;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "type")
|
||||||
|
public class Type {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
@Column
|
||||||
|
private String type;
|
||||||
|
@Column
|
||||||
|
private String label;
|
||||||
|
@Column
|
||||||
|
private String hexColor;
|
||||||
|
@Column
|
||||||
|
private int rank;
|
||||||
|
@Column
|
||||||
|
private boolean isHint;
|
||||||
|
@Column
|
||||||
|
private boolean isCaseInsensitive;
|
||||||
|
@Column
|
||||||
|
private boolean isRecommendation;
|
||||||
|
@Column
|
||||||
|
private String description;
|
||||||
|
@Column
|
||||||
|
private long version;
|
||||||
|
@Column
|
||||||
|
private boolean addToDictionaryAction;
|
||||||
|
|
||||||
|
@OneToMany(cascade = ALL, mappedBy = "type", orphanRemoval = true, fetch = FetchType.LAZY)
|
||||||
|
private List<DictionaryEntry> entries = new ArrayList<>();
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
@Column(updatable = false, insertable = false)
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private Dossier dossier;
|
||||||
|
|
||||||
|
@Column(updatable = false, insertable = false)
|
||||||
|
private String dossierId;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "watermark_config")
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Watermark {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@Column
|
||||||
|
private String dossierTemplateId;
|
||||||
|
@Column
|
||||||
|
private String text;
|
||||||
|
@Column
|
||||||
|
private String hexColor;
|
||||||
|
@Column
|
||||||
|
private int opacity;
|
||||||
|
@Column
|
||||||
|
private int fontSize;
|
||||||
|
@Column
|
||||||
|
private String fontType;
|
||||||
|
@Column
|
||||||
|
private WatermarkOrientation orientation;
|
||||||
|
|
||||||
|
@OneToOne(fetch = FetchType.LAZY)
|
||||||
|
@JoinColumn(name = "dossier_template_id")
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
public enum WatermarkOrientation {
|
||||||
|
VERTICAL, HORIZONTAL, DIAGONAL
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Table(name = "dossier")
|
||||||
|
public class Dossier {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String dossierName;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime date;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private DossierStatus status;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String ownerId;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private Set<String> memberIds = new HashSet<>();
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private Set<String> approverIds = new HashSet<>();
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean watermarkEnabled;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime softDeletedTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime hardDeletedTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime startDate;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime dueDate;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
@Column(updatable=false, insertable=false)
|
||||||
|
private String dossierTemplateId;
|
||||||
|
|
||||||
|
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "dossiers")
|
||||||
|
private List<ReportTemplate> reportTemplates = new ArrayList<>();
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
private List<Type> dossierTypes = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Table(name = "dossier_attribute")
|
||||||
|
@Entity
|
||||||
|
public class DossierAttribute {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private DossierAttributeId id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private Dossier dossier;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private DossierAttributeConfig dossierAttributeConfig;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Embeddable
|
||||||
|
public static class DossierAttributeId implements Serializable {
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String dossierId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String dossierAttributeConfigId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "dossier_attribute_config")
|
||||||
|
public class DossierAttributeConfig {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
@Column
|
||||||
|
private String label;
|
||||||
|
@Column
|
||||||
|
private boolean editable;
|
||||||
|
@Column
|
||||||
|
private String placeholder;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private DossierAttributeType type = DossierAttributeType.TEXT;
|
||||||
|
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
public enum DossierAttributeType {
|
||||||
|
TEXT, NUMBER, DATE, IMAGE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
public enum DossierStatus {
|
||||||
|
ACTIVE, DELETED
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Type;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "dossier_template")
|
||||||
|
public class DossierTemplate {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime dateAdded;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime dateModified;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String createdBy;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String modifiedBy;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime validFrom;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime validTo;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean deleted;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||||
|
|
||||||
|
@ManyToMany
|
||||||
|
private List<ReportTemplate> reportTemplates = new ArrayList<>();
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
private List<Type> dossierTypes = new ArrayList<>();
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
public enum DownloadFileType {
|
||||||
|
ORIGINAL, PREVIEW, REDACTED, ANNOTATED, FLATTEN
|
||||||
|
}
|
||||||
@ -0,0 +1,124 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "file")
|
||||||
|
public class File {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String filename;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private FileStatus status;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private FileStatus lastSuccessfulStatus;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private int numberOfPages;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime added;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastUpdated;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime deleted;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastProcessed;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastIndexed;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private int numberOfAnalyses;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String currentReviewer;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String lastReviewer;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastManualRedaction;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasRedactions;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasHints;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasSuggestions;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasImages;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasUpdates;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String uploader;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long dictionaryVersion;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long rulesVersion;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long dossierDictionaryVersion;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long legalBasisVersion;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime approvalDate;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastUploaded;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private long analysisDuration;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastOCRTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean hasAnnotationComments;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private boolean excluded;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime hardDeletedTime;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastFileAttributeChange;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private int analysisVersion;
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private Set<Integer> excludedPages;
|
||||||
|
|
||||||
|
@OneToMany(mappedBy = "file", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
|
||||||
|
private List<FileAttribute> fileAttributes;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private Dossier dossier;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "file_attribute")
|
||||||
|
public class FileAttribute {
|
||||||
|
|
||||||
|
@EmbeddedId
|
||||||
|
private FileAttributeId fileAttributeId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private File file;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private FileAttributeConfig fileAttributeConfig;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Embeddable
|
||||||
|
public static class FileAttributeId implements Serializable {
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String fileId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String fileAttributeConfigId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "file_attribute_config")
|
||||||
|
public class FileAttributeConfig {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
@Column
|
||||||
|
private String csvColumnHeader;
|
||||||
|
@Column
|
||||||
|
private String label;
|
||||||
|
@Column
|
||||||
|
private boolean primaryAttribute;
|
||||||
|
@Column
|
||||||
|
private boolean editable;
|
||||||
|
@Column
|
||||||
|
private boolean filterable;
|
||||||
|
@Column
|
||||||
|
private boolean displayedInFileList;
|
||||||
|
@Column
|
||||||
|
private String placeholder;
|
||||||
|
@Column
|
||||||
|
private FileAttributeType type = FileAttributeType.TEXT;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
public enum FileAttributeType {
|
||||||
|
TEXT, NUMBER, DATE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
public enum FileStatus {
|
||||||
|
UNPROCESSED, REPROCESS, PROCESSING, ERROR, DELETED, UNASSIGNED, UNDER_REVIEW, UNDER_APPROVAL, APPROVED, FULLREPROCESS, OCR_PROCESSING, INDEXING
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "report_template")
|
||||||
|
public class ReportTemplate {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String templateId;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private String storageId;
|
||||||
|
@Column
|
||||||
|
private String fileName;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime uploadDate;
|
||||||
|
@Column
|
||||||
|
private boolean multiFileReport;
|
||||||
|
@Column
|
||||||
|
private boolean activeByDefault;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = FetchType.LAZY)
|
||||||
|
private DossierTemplate dossierTemplate;
|
||||||
|
|
||||||
|
@ManyToMany
|
||||||
|
private List<Dossier> dossiers = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.download;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DownloadFileType;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@Table(name = "download_status")
|
||||||
|
public class DownloadStatus {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private String storageId;
|
||||||
|
@Column
|
||||||
|
private String userId;
|
||||||
|
@Column
|
||||||
|
private String filename;
|
||||||
|
@Column
|
||||||
|
private String mimeType;
|
||||||
|
@Column
|
||||||
|
private DownloadStatusValue status;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime creationDate;
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime lastDownload;
|
||||||
|
@Column
|
||||||
|
private long fileSize;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
private Dossier dossier;
|
||||||
|
|
||||||
|
@ManyToMany
|
||||||
|
private List<File> files = new ArrayList<>();
|
||||||
|
|
||||||
|
@ElementCollection
|
||||||
|
private List<DownloadFileType> downloadFileTypes = new ArrayList<>();
|
||||||
|
|
||||||
|
public enum DownloadStatusValue {
|
||||||
|
QUEUED, GENERATING, READY, FAILED
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,2 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.data.download;
|
||||||
|
|
||||||
@ -0,0 +1 @@
|
|||||||
|
lombok.anyConstructor.addConstructorProperties=true
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.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 {
|
||||||
|
|
||||||
|
String DICTIONARY_PATH = "/dictionary";
|
||||||
|
String TYPE_PATH = DICTIONARY_PATH + "/type";
|
||||||
|
|
||||||
|
String TYPE_PARAMETER_NAME = "type";
|
||||||
|
String TYPE_PATH_VARIABLE = "/{" + TYPE_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
String DOSSIER_ID_PARAMETER_NAME = "dossierId";
|
||||||
|
String DOSSIER_PATH = "/dossier";
|
||||||
|
String DOSSIER_ID_PATH_VARIABLE = "/{" + DOSSIER_ID_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
String COLOR_PATH = "/color";
|
||||||
|
String VERSION_PATH = "/version";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
||||||
|
@RequestBody List<String> entries,
|
||||||
|
@RequestParam(value = "removeCurrent", required = false, defaultValue = "false") boolean removeCurrent);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
||||||
|
@RequestBody List<String> entries);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateTypeValue(@PathVariable(TYPE_PARAMETER_NAME) String typeId,
|
||||||
|
@RequestBody Type typeValue);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void addType(@RequestBody Type typeValue);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
||||||
|
void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = TYPE_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<Type> getAllTypesForDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
@GetMapping(value = TYPE_PATH + DOSSIER_PATH + DOSSIER_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<Type> getAllTypesForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = VERSION_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
||||||
|
long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
@GetMapping(value = VERSION_PATH + DOSSIER_PATH+DOSSIER_ID_PATH_VARIABLE)
|
||||||
|
long getVersionForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = COLOR_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@GetMapping(value = COLOR_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Colors getColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DigitalSignature;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
public interface DigitalSignatureResource {
|
||||||
|
|
||||||
|
String DIGITAL_SIGNATURE_PATH = "/digital-signature";
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.CREATED)
|
||||||
|
@PostMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DigitalSignature saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel);
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.CREATED)
|
||||||
|
@PutMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel);
|
||||||
|
|
||||||
|
@GetMapping(value = DIGITAL_SIGNATURE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DigitalSignature getDigitalSignature();
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = DIGITAL_SIGNATURE_PATH)
|
||||||
|
void deleteDigitalSignature();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DossierAttributesResource {
|
||||||
|
|
||||||
|
String DOSSIER_ATTRIBUTES_PATH = "/dossierAttributes";
|
||||||
|
String DOSSIER_ATTRIBUTE_PATH = "/dossierAttribute";
|
||||||
|
String BASE_CONFIG_PATH = "/baseConfig";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
|
||||||
|
|
||||||
|
String DOSSIER_ATTRIBUTE_ID = "dossierAttributeId";
|
||||||
|
String DOSSIER_ATTRIBUTE_ID_PATH_VARIABLE = "/{" + DOSSIER_ATTRIBUTE_ID + "}";
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@PostMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||||
|
@RequestBody DossierAttributeConfig dossierAttributeConfig);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@PutMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<DossierAttributeConfig> setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||||
|
@RequestBody List<DossierAttributeConfig> dossierAttributesConfig);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH_VARIABLE)
|
||||||
|
void deleteDossierAttribute(@PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete")
|
||||||
|
void deleteDossierAttributes(@RequestBody List<String> dossierAttributeIds);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<DossierAttributeConfig> getDossierAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.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;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
public interface DossierResource {
|
||||||
|
|
||||||
|
String REST_PATH = "/dossier";
|
||||||
|
String DELETED_DOSSIERS_PATH = "/deletedDossiers";
|
||||||
|
String HARD_DELETE_PATH = "/hardDelete";
|
||||||
|
String UNDELETE_PATH = "/undelete";
|
||||||
|
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Dossier addDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest);
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Dossier updateDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest, @PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
@DeleteMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM)
|
||||||
|
void delete(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
@GetMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<Dossier> getAllDossiers();
|
||||||
|
|
||||||
|
@GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Dossier getDossierById(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
@GetMapping(value = DELETED_DOSSIERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<Dossier> getSoftDeletedDossiers();
|
||||||
|
|
||||||
|
@DeleteMapping(value = DELETED_DOSSIERS_PATH + HARD_DELETE_PATH)
|
||||||
|
void hardDeleteDossiers(@RequestBody Set<String> dossierIds);
|
||||||
|
|
||||||
|
@PostMapping(value = DELETED_DOSSIERS_PATH + UNDELETE_PATH)
|
||||||
|
void undeleteDossiers(@RequestBody Set<String> dossierIds);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierTemplateRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface DossierTemplateResource {
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_PATH = "/dossier-template";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
|
||||||
|
|
||||||
|
String USER_ID_PARAM = "userId";
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.ACCEPTED)
|
||||||
|
@PostMapping(value = DOSSIER_TEMPLATE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DossierTemplate createOrUpdateDossierTemplate(@RequestBody CreateOrUpdateDossierTemplateRequest dossierTemplate);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = DOSSIER_TEMPLATE_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<DossierTemplate> getAllDossierTemplates();
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DossierTemplate getDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE)
|
||||||
|
void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(USER_ID_PARAM) String deletingUserId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.DownloadRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.SetDownloadedRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.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 {
|
||||||
|
|
||||||
|
String REST_PATH = "/download";
|
||||||
|
String USER_ID = "userId";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH + "/prepare", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
JSONPrimitive<String> prepareDownload(@RequestBody DownloadRequest request);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = REST_PATH + "/status/{" + USER_ID + "}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<DownloadStatus> getDownloadStatus(@PathVariable(USER_ID) String userId);
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH + "/setDownloaded", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void setDownloaded(@RequestBody JSONPrimitive<String> setDownloadedRequest);
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH + "/delete", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void deleteDownloadStatus(@RequestBody JSONPrimitive<String> setDownloadedRequest);
|
||||||
|
}
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.FileAttributesGeneralConfiguration;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileAttributeConfig;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface FileAttributesResource {
|
||||||
|
|
||||||
|
String FILE_ATTRIBUTES_PATH = "/fileAttributes";
|
||||||
|
String FILE_ATTRIBUTE_PATH = "/fileAttribute";
|
||||||
|
String BASE_CONFIG_PATH = "/baseConfig";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
|
||||||
|
|
||||||
|
String FILE_ATTRIBUTE_ID = "fileAttributeId";
|
||||||
|
String FILE_ATTRIBUTE_ID_PATH_VARIABLE = "/{" + FILE_ATTRIBUTE_ID + "}";
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@PostMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||||
|
@RequestBody FileAttributeConfig fileAttributeConfig);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@PutMapping(value = FILE_ATTRIBUTES_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
FileAttributesGeneralConfiguration setFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||||
|
@RequestBody FileAttributesGeneralConfiguration fileAttributesConfig);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = FILE_ATTRIBUTES_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
FileAttributesGeneralConfiguration getFileAttributesGeneralConfiguration(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@PutMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<FileAttributeConfig> setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||||
|
@RequestBody List<FileAttributeConfig> fileAttributesConfig);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + FILE_ATTRIBUTE_ID_PATH_VARIABLE)
|
||||||
|
void deleteFileAttribute(@PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete")
|
||||||
|
void deleteFileAttributes(@RequestBody List<String> fileAttributeIds);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = FILE_ATTRIBUTES_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<FileAttributeConfig> getFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
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;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
|
||||||
|
|
||||||
|
public interface FileStatusProcessingUpdateResource {
|
||||||
|
|
||||||
|
String STATUS_PATH = "/status-updates";
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/analysis-successful", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void analysisSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody AnalyzeResult analyzeResult);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/ocr-successful")
|
||||||
|
void ocrSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/analysis-failed")
|
||||||
|
void analysisFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/ocr-failed")
|
||||||
|
void ocrFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/indexing")
|
||||||
|
void indexing(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/indexing-successful")
|
||||||
|
void indexingSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/indexing-failed")
|
||||||
|
void indexingFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface LegalBasisMappingResource {
|
||||||
|
|
||||||
|
String LEGAL_BASIS_PATH = "/legalBasis";
|
||||||
|
String VERSION_PATH = "/version";
|
||||||
|
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<LegalBasis> legalBasisMapping);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<LegalBasis> getLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + VERSION_PATH)
|
||||||
|
long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.LicenseReport;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.LicenseReportRequest;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
public interface LicenseReportResource {
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = "/report/license", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
LicenseReport getLicenseReport(@RequestBody LicenseReportRequest licenseReportRequest,
|
||||||
|
@RequestParam(value = "offset", defaultValue = "0") int offset,
|
||||||
|
@RequestParam(value = "limit", defaultValue = "20") int limit);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,154 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.*;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.*;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
public interface ManualRedactionResource {
|
||||||
|
|
||||||
|
String MANUAL_REDACTION_REST_PATH = "/manualRedaction";
|
||||||
|
|
||||||
|
String DOSSIER_ID = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID + "}";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
String ANNOTATION_ID = "annotationId";
|
||||||
|
String ANNOTATION_ID_PATH_VARIABLE = "/{" + ANNOTATION_ID + "}";
|
||||||
|
|
||||||
|
String COMMENT_ID = "commentId";
|
||||||
|
String COMMENT_ID_PATH_VARIABLE = "/{" + COMMENT_ID + "}";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/add" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualAddResponse addAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody AddRedactionRequest addRedactionRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/remove" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualAddResponse addRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody RemoveRedactionRequest removeRedactionRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/force" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualAddResponse addForceRedaction(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody ForceRedactionRequest forceRedactionRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/legalBasis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualAddResponse addLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody LegalBasisChangeRequest legalBasisChangeRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/recategorize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualAddResponse addImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody ImageRecategorizationRequest imageRecategorizationRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/comment" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Comment addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId, @RequestBody CommentRequest comment);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/add" + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualRedactionEntry getAddRedaction(@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/remove" + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
IdRemoval getRemoveRedaction(@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/force" + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualForceRedaction getForceRedaction(@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/legalBasis" + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualLegalBasisChange getLegalBasisChange(@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/recategorize" + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualImageRecategorization getImageRecategorization(@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + "/comment" + COMMENT_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Comment getComment( @PathVariable(COMMENT_ID) long commentId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/add" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE)
|
||||||
|
void deleteAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/remove" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE)
|
||||||
|
void deleteRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/force" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE)
|
||||||
|
void deleteForceRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/legalBasis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE)
|
||||||
|
void deleteLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/recategorize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE)
|
||||||
|
void deleteImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(MANUAL_REDACTION_REST_PATH + "/comment" + FILE_ID_PATH_VARIABLE + COMMENT_ID_PATH_VARIABLE)
|
||||||
|
void deleteComment( @PathVariable(FILE_ID) String fileId,@PathVariable(COMMENT_ID) long commentId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/add" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateAddRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId,
|
||||||
|
@RequestBody JSONPrimitive<AnnotationStatus> updateStatusRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/remove" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateRemoveRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId,
|
||||||
|
@RequestBody JSONPrimitive<AnnotationStatus> updateStatusRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/force" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateForceRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId,
|
||||||
|
@RequestBody JSONPrimitive<AnnotationStatus> updateStatusRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/legalBasis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateLegalBasisChangeStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId,
|
||||||
|
@RequestBody JSONPrimitive<AnnotationStatus> updateStatusRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/recategorize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateImageRecategorizationStatus(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@PathVariable(ANNOTATION_ID) String annotationId,
|
||||||
|
@RequestBody JSONPrimitive<AnnotationStatus> updateStatusRequest);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = MANUAL_REDACTION_REST_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ManualRedactions getManualRedactions(@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
public interface ReanalysisResource {
|
||||||
|
|
||||||
|
String REANALYZE_PATH = "/reanalyze";
|
||||||
|
String OCR_REANALYZE_PATH = "/ocr/reanalyze";
|
||||||
|
String REINDEX_PATH = "/reindex";
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
String FILE_ID_PARAM = "fileId";
|
||||||
|
String FILE_ID_PATH_PARAM = "/{" + FILE_ID_PARAM + "}";
|
||||||
|
String BULK_REST_PATH = "/bulk";
|
||||||
|
String FALSE = "false";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM)
|
||||||
|
void reanalyzeDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||||
|
@RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_PARAM)
|
||||||
|
void reanalyzeFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID_PARAM) String fileId,
|
||||||
|
@RequestBody Set<Integer> sectionsToReanalyse);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + BULK_REST_PATH)
|
||||||
|
void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set<String> fileIds,
|
||||||
|
@RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = OCR_REANALYZE_PATH + DOSSIER_ID_PATH_PARAM)
|
||||||
|
void ocrDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = OCR_REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_PARAM)
|
||||||
|
void ocrFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID_PARAM) String fileId, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = OCR_REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + BULK_REST_PATH)
|
||||||
|
void ocrFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set<String> fileIds);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REINDEX_PATH)
|
||||||
|
void reindex(@RequestParam(value = DOSSIER_ID_PARAM, required = false) String dossierId, @RequestBody Set<String> fileIds);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
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;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
public interface RedactionLogResource {
|
||||||
|
|
||||||
|
String REDACTION_LOG_PATH = "/redactionLog";
|
||||||
|
String SECTION_GRID_PATH = "/sectionGrid";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
|
||||||
|
@GetMapping(value = REDACTION_LOG_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
RedactionLog getRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestParam(value = "withManualRedactions", required = false, defaultValue = "true") boolean withManualRedactions);
|
||||||
|
|
||||||
|
@GetMapping(value = SECTION_GRID_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.ReportTemplateDownload;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.ReportTemplateUploadRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.ReportTemplate;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ReportTemplateResource {
|
||||||
|
|
||||||
|
String REPORT_TEMPLATE_UPLOAD_PATH = "/templateUpload";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
|
||||||
|
|
||||||
|
String TEMPLATE_ID = "templateId";
|
||||||
|
String TEMPLATE_ID_PATH_VARIABLE = "/{" + TEMPLATE_ID + "}";
|
||||||
|
|
||||||
|
String DOWNLOAD_PATH = "download";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REPORT_TEMPLATE_UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces =
|
||||||
|
MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest);
|
||||||
|
|
||||||
|
@GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<ReportTemplate> getAvailableReportTemplates(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId);
|
||||||
|
|
||||||
|
@GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId);
|
||||||
|
|
||||||
|
@GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOWNLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId);
|
||||||
|
|
||||||
|
@DeleteMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE)
|
||||||
|
void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
public interface RulesResource {
|
||||||
|
|
||||||
|
String PATH = "/rules";
|
||||||
|
|
||||||
|
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||||
|
String VERSION_PATH = "/version";
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void setRules(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody JSONPrimitive<String> rules);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
JSONPrimitive<String> getRules(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.OK)
|
||||||
|
@GetMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + VERSION_PATH)
|
||||||
|
long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.SMTPConfiguration;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
||||||
|
public interface SMTPConfigurationResource {
|
||||||
|
|
||||||
|
String SMTP_PATH = "/smtp";
|
||||||
|
|
||||||
|
String TEST_PATH = "/test";
|
||||||
|
|
||||||
|
String TEST_EMAIL = "testEmail";
|
||||||
|
|
||||||
|
String MASK_PASSWORD = "maskPassword";
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = SMTP_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
SMTPConfiguration getCurrentSMTPConfiguration(@RequestParam(value = MASK_PASSWORD, required = false, defaultValue = "true") boolean maskPassword);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
@PostMapping(value = SMTP_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void updateSMTPConfiguration(@RequestBody SMTPConfiguration smtpConfigurationModel);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@PostMapping(value = SMTP_PATH + TEST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void testSMTPConfiguration(@RequestParam(value = TEST_EMAIL, required = false) String testEmail, @RequestBody SMTPConfiguration smtpConfigurationModel);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = SMTP_PATH)
|
||||||
|
void clearSMTPConfiguration();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public interface StatusResource {
|
||||||
|
|
||||||
|
String STATUS_PATH = "/status";
|
||||||
|
String DELETED_PATH = "/softdeleted";
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
String EXCLUDED_STATUS_PARAM = "excluded";
|
||||||
|
|
||||||
|
String APPROVER_ID_REQUEST_PARAM = "approverId";
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = STATUS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<File> getAllStatuses();
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<File> getDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = STATUS_PATH + DELETED_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<File> getSoftDeletedDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
File getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/reviewer" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void setCurrentFileReviewer(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody JSONPrimitive<String> currentReviewer);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/underreview" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/underapproval" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/approved" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/toggle-analysis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded);
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/exclude-pages" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void excludePages(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set<Integer> pages);
|
||||||
|
|
||||||
|
@PostMapping(value = STATUS_PATH + "/include-pages" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void includePages(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set<Integer> pages);
|
||||||
|
}
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileResult;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
|
||||||
|
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 {
|
||||||
|
|
||||||
|
String SERVICE_NAME = "file-management-service-v1";
|
||||||
|
|
||||||
|
String REST_PATH = "/file";
|
||||||
|
|
||||||
|
String DELETE_PATH = REST_PATH + "/delete";
|
||||||
|
String UPLOAD_PATH = REST_PATH + "/upload";
|
||||||
|
String ORIGINAL_PATH = REST_PATH + "/original";
|
||||||
|
String ANNOTATED_PATH = REST_PATH + "/annotated";
|
||||||
|
String REDACTED_PATH = REST_PATH + "/redacted";
|
||||||
|
String PREVIEW_PATH = REST_PATH + "/preview";
|
||||||
|
String FLATTED_PATH = REST_PATH + "/flatted";
|
||||||
|
String HARD_DELETE_PATH = REST_PATH + "/hardDelete";
|
||||||
|
String UNDELETE_PATH = REST_PATH + "/undelete";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
String DOSSIER_ID_PARAM = "dossierId";
|
||||||
|
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces =
|
||||||
|
MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
JSONPrimitive<String> upload(@RequestBody BinaryFileRequest request);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(value = DELETE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||||
|
void deleteFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(value = HARD_DELETE_PATH + DOSSIER_ID_PATH_PARAM)
|
||||||
|
void hardDeleteFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set<String> fileIds);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = UNDELETE_PATH + DOSSIER_ID_PATH_PARAM)
|
||||||
|
void undeleteFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set<String> fileIds);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = ORIGINAL_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
BinaryFileResult getOriginal(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = ANNOTATED_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
BinaryFileResult getAnnotated(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REDACTED_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
BinaryFileResult getRedacted(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
@PostMapping(value = PREVIEW_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
BinaryFileResult getPreview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = FLATTED_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
BinaryFileResult getFlatRedacted(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
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.*;
|
||||||
|
|
||||||
|
public interface UserPreferenceResource {
|
||||||
|
|
||||||
|
String PREFERENCES_PATH = "/preferences";
|
||||||
|
|
||||||
|
String KEY_PARAMETER_NAME = "key";
|
||||||
|
String KEY_PATH_VARIABLE = "/{" + KEY_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
String USER_ID_PARAMETER_NAME = "userId";
|
||||||
|
String USER_ID_PATH_VARIABLE = "/{" + USER_ID_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@PutMapping(value = PREFERENCES_PATH + USER_ID_PATH_VARIABLE + KEY_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void savePreferences(@PathVariable(USER_ID_PARAMETER_NAME) String userId, @PathVariable(KEY_PARAMETER_NAME) String key, @RequestBody JsonNode jsonNode);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
@GetMapping(value = PREFERENCES_PATH + USER_ID_PATH_VARIABLE + KEY_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
JsonNode getPreferences(@PathVariable(USER_ID_PARAMETER_NAME) String userId, @PathVariable(KEY_PARAMETER_NAME) String key);
|
||||||
|
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = PREFERENCES_PATH + USER_ID_PATH_VARIABLE + KEY_PATH_VARIABLE)
|
||||||
|
void deletePreferences(@PathVariable(USER_ID_PARAMETER_NAME) String userId, @PathVariable(KEY_PARAMETER_NAME) String key);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
|
||||||
|
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 ViewedPagesResource {
|
||||||
|
|
||||||
|
String REST_PATH = "/viewedPages";
|
||||||
|
|
||||||
|
String FILE_ID = "fileId";
|
||||||
|
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
|
||||||
|
|
||||||
|
String ROLE = "role";
|
||||||
|
String ROLE_PATH_VARIABLE = "/{" + ROLE + "}";
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role,
|
||||||
|
@RequestBody Integer page);
|
||||||
|
|
||||||
|
|
||||||
|
@DeleteMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
void removePage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role,
|
||||||
|
@RequestBody Integer page);
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
List<ViewedPage> getViewedPages(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.resources;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Watermark;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
|
public interface WatermarkResource {
|
||||||
|
|
||||||
|
String WATERMARK_PATH = "/watermark";
|
||||||
|
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||||
|
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.CREATED)
|
||||||
|
@PostMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Watermark saveWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Watermark watermark);
|
||||||
|
|
||||||
|
@GetMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
Watermark getWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
|
@DeleteMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
||||||
|
void deleteWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,95 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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">
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<artifactId>persistence-service-v1</artifactId>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>persistence-service-processor-v1</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<artifactId>persistence-service-api-v1</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.service</groupId>
|
||||||
|
<artifactId>pdftron-redaction-service-api-v1</artifactId>
|
||||||
|
<version>2.18.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- commons -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.commons</groupId>
|
||||||
|
<artifactId>jackson-commons</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.commons</groupId>
|
||||||
|
<artifactId>storage-commons</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.iqser.red.commons</groupId>
|
||||||
|
<artifactId>logging-commons</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!-- other external -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-collections4</artifactId>
|
||||||
|
<version>4.4</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- spring -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- test -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.testcontainers</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<version>1.15.0</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-slf4j-impl</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
|
||||||
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@ComponentScan
|
||||||
|
@EnableFeignClients(basePackageClasses = {PDFTronRedactionClient.class})
|
||||||
|
public class PersistenceServiceProcessorConfiguration {
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.client;
|
||||||
|
|
||||||
|
import com.iqser.red.service.pdftron.redaction.v1.api.resources.PDFTronRedactionResource;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
|
||||||
|
@FeignClient(name = "PDFTronRedactionResource", url = "${pdftron-redaction-service.url}")
|
||||||
|
public interface PDFTronRedactionClient extends PDFTronRedactionResource {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class BadRequestException extends RuntimeException {
|
||||||
|
|
||||||
|
public BadRequestException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BadRequestException(String message, Throwable t) {
|
||||||
|
super(message, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class ConflictException extends RuntimeException {
|
||||||
|
|
||||||
|
public ConflictException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class DossierNotFoundException extends RuntimeException {
|
||||||
|
|
||||||
|
public static final String DOSSIER_NOT_FOUND_MESSAGE = "Dossier with DossierId %s not found in the database.";
|
||||||
|
|
||||||
|
public DossierNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class FileNotFoundException extends RuntimeException {
|
||||||
|
|
||||||
|
public FileNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class InternalServerErrorException extends RuntimeException {
|
||||||
|
|
||||||
|
public InternalServerErrorException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public InternalServerErrorException(String message, Throwable t) {
|
||||||
|
super(message, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class NotFoundException extends RuntimeException {
|
||||||
|
|
||||||
|
public NotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class UserNotFoundException extends RuntimeException {
|
||||||
|
|
||||||
|
public UserNotFoundException(String message) {
|
||||||
|
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.exception;
|
||||||
|
|
||||||
|
public class ValidationException extends RuntimeException {
|
||||||
|
|
||||||
|
public ValidationException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user