This commit is contained in:
Timo Bejan 2021-09-14 12:29:38 +03:00
parent a2ee61c087
commit 9edb1ebeea
20 changed files with 61 additions and 49 deletions

View File

@ -20,6 +20,7 @@ public class ViewedPage {
private OffsetDateTime viewedTime;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("fileId")
private File file;
@Data
@ -28,7 +29,7 @@ public class ViewedPage {
@AllArgsConstructor
public static class ViewedPageId implements Serializable {
@Column
@Column(name = "file_id")
private String fileId;
@Column
private int page;

View File

@ -17,7 +17,7 @@ public class SMTPConfiguration {
@Id
private final String id = SMTPConfiguration.ID;
@Column
@Column(name = "from_email")
private String from;
@Column
private String fromDisplayName;

View File

@ -44,13 +44,13 @@ public class Type {
@ManyToOne
private DossierTemplate dossierTemplate;
@Column(updatable = false, insertable = false)
@Column(updatable = false, insertable = false, name = "dossier_template_id")
private String dossierTemplateId;
@ManyToOne
private Dossier dossier;
@Column(updatable = false, insertable = false)
@Column(updatable = false, insertable = false, name = "dossier_id")
private String dossierId;
}

View File

@ -66,7 +66,7 @@ public class Dossier {
@ManyToOne(fetch = FetchType.LAZY)
private DossierTemplate dossierTemplate;
@Column(updatable=false, insertable=false)
@Column(updatable=false, insertable=false, name = "dossier_template_id")
private String dossierTemplateId;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "dossiers")

View File

@ -20,9 +20,11 @@ public class DossierAttribute {
private String value;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("dossierId")
private Dossier dossier;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("dossierAttributeConfigId")
private DossierAttributeConfig dossierAttributeConfig;
@Data
@ -31,10 +33,10 @@ public class DossierAttribute {
@Embeddable
public static class DossierAttributeId implements Serializable {
@Column
@Column(name = "dossier_id")
private String dossierId;
@Column
@Column(name = "dossier_attribute_config_id")
private String dossierAttributeConfigId;
}

View File

@ -17,9 +17,11 @@ public class FileAttribute {
private String value;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("fileId")
private File file;
@ManyToOne(fetch = FetchType.LAZY)
@MapsId("fileAttributeConfigId")
private FileAttributeConfig fileAttributeConfig;
@ -27,10 +29,10 @@ public class FileAttribute {
@Embeddable
public static class FileAttributeId implements Serializable {
@Column
@Column(name = "file_id")
private String fileId;
@Column
@Column(name = "file_attribute_config_id")
private String fileAttributeConfigId;
}
}

View File

@ -1,12 +1,21 @@
package com.iqser.red.service.persistence.management.v1.processor;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ColorsRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Colors;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
import com.iqser.red.service.persistence.service.v1.api.model.data.download.DownloadStatus;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@Configuration
@ComponentScan
@EntityScan(basePackageClasses = {Comment.class, Colors.class, Dossier.class, DownloadStatus.class})
@EnableJpaRepositories(basePackageClasses = ColorsRepository.class)
@EnableFeignClients(basePackageClasses = {PDFTronRedactionClient.class})
public class PersistenceServiceProcessorConfiguration {
}

View File

@ -35,12 +35,12 @@ public class DigitalSignatureService {
public DigitalSignature saveDigitalSignature(DigitalSignature digitalSignature) {
try {
// try {
// TODO
// pdfTronRedactionClient.testDigitalCurrentSignature(digitalSignature);
} catch (Exception e) {
throw new BadRequestException("Failed to test digital signature");
}
// } catch (Exception e) {
// throw new BadRequestException("Failed to test digital signature");
// }
digitalSignature.setPrivateKey(encryptionDecryptionService.encrypt(digitalSignature.getPrivateKey()));
digitalSignature.setPassword(encryptionDecryptionService.encrypt(digitalSignature.getPassword()));

View File

@ -42,7 +42,7 @@ public class EntryPersistenceService {
public void setVersion(String typeId, List<String> values, long version) {
entryRepository.updateVersionByTypeIdAndValueIn(version, typeId, values);
entryRepository.updateVersionWhereTypeIdAndValueIn(version, typeId, values);
}

View File

@ -2,9 +2,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierTemplate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface DossierTemplateRepository extends JpaRepository<DossierTemplate, String> {
@Query("select d from DossierTemplate d where d.deleted = false or d.deleted is null")
List<DossierTemplate> findAllWhereDeletedIsFalse();
}

View File

@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
@ -9,7 +10,8 @@ public interface EntryRepository extends JpaRepository<DictionaryEntry, Long> {
void deleteAllByTypeIdAndVersionAndValueIn(String typeId, long version, List<String> values);
void updateVersionByTypeIdAndValueIn(long version, String typeId, List<String> values);
@Query("update DictionaryEntry e set e.version = :version where e.type.id =:typeId and e.value in :values ")
void updateVersionWhereTypeIdAndValueIn(long version, String typeId, List<String> values);
List<DictionaryEntry> findByTypeId(String typeId);
}

View File

@ -87,6 +87,11 @@
<groupId>com.iqser.red.commons</groupId>
<artifactId>spring-commons</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>

View File

@ -1,10 +0,0 @@
package com.iqser.red.service.file.management.v1.server.client;
import org.springframework.cloud.openfeign.FeignClient;
import com.iqser.red.service.pdftron.redaction.v1.api.resources.PDFTronRedactionResource;
@FeignClient(name = "PDFTronRedactionResource", url = "${pdftron-redaction-service.url}")
public interface PDFTronRedactionClient extends PDFTronRedactionResource {
}

View File

@ -1,8 +0,0 @@
package com.iqser.red.service.file.management.v1.server.client;
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "RedactionResource", url = "${redaction-service.url}")
public interface RedactionServiceClient extends RedactionResource {
}

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.file.management.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.client.RedactionServiceClient;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.file.management.v1.server.exception.InvalidRulesException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
public class RulesController implements RulesResource {
private final RulesPersistenceService rulesPersistenceService;
private final RedactionServiceClient redactionServiceClient;
private final RedactionClient redactionServiceClient;
@Override

View File

@ -1,6 +1,5 @@
package com.iqser.red.service.file.management.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.client.PDFTronRedactionClient;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.file.management.v1.server.service.FileManagementStorageService;
@ -10,6 +9,7 @@ import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronFlattenReques
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronFlattenResponse;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronRedactionRequest;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronRedactionResult;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;

View File

@ -2,9 +2,9 @@ package com.iqser.red.service.file.management.v1.server.service;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.iqser.red.service.file.management.v1.server.client.PDFTronRedactionClient;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeRequest;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeResponse;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;

View File

@ -1,11 +1,11 @@
package com.iqser.red.service.file.management.v1.server.service.download;
import com.iqser.red.service.file.management.v1.server.client.PDFTronRedactionClient;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.file.management.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.file.management.v1.server.service.RedactionLogService;
import com.iqser.red.service.file.management.v1.server.utils.FileSystemBackedArchiver;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronRedactionRequest;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;

View File

@ -16,4 +16,19 @@ storage:
bucket-name: 'redaction'
endpoint: 'http://localhost:9000'
key: minioadmin
secret: minioadmin
secret: minioadmin
spring:
datasource:
jdbcUrl: jdbc:h2:mem:testdb
driverClassName: org.h2.Driver
username: sa
password: password
platform: org.hibernate.dialect.H2Dialect
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
generate-ddl: true

View File

@ -2,18 +2,9 @@ package com.iqser.red.service.file.management.v1.server.integration;
import com.iqser.red.commons.persistence.cassandra.AbstractCassandraTest;
import com.iqser.red.service.file.management.v1.server.Application;
import com.iqser.red.service.file.management.v1.server.client.PDFTronRedactionClient;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
import com.iqser.red.storage.commons.service.StorageService;
import org.junit.After;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.*;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit4.SpringRunner;