audit test WIP

This commit is contained in:
Timo Bejan 2021-09-16 16:22:52 +03:00
parent 7211c02d16
commit 3212648194
91 changed files with 347 additions and 246 deletions

View File

@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
@Data
@ -15,7 +16,7 @@ import java.util.Map;
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="audit")
@Table(name = "audit")
public class AuditModel {
@Id
@ -34,8 +35,9 @@ public class AuditModel {
@Column
private String message;
@Basic(fetch = FetchType.EAGER)
@Column(columnDefinition = "text")
@Convert(converter = JSONConverter.class)
@Column(columnDefinition = "json")
private Map<String, Object> details;
private Map<String, Object> details = new HashMap<>();
}

View File

@ -1,10 +1,16 @@
package com.iqser.red.service.persistence.service.v1.api.model.data.audit;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.OffsetDateTime;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AuditSearchRequest {
private String category;

View File

@ -1,8 +1,13 @@
package com.iqser.red.service.persistence.service.v1.api.model.data.audit;
public interface CategoryModel {
import lombok.AllArgsConstructor;
import lombok.Data;
String getCategory();
@Data
@AllArgsConstructor
public class CategoryModel {
private final String category;
private final long recordCount;
long getRecordCount();
}

View File

@ -55,6 +55,6 @@ public class DossierTemplate {
@OneToMany
private List<Type> dossierTypes = new ArrayList<>();
@ManyToMany
@OneToMany
private List<Dossier> dossiers = new ArrayList<>();
}

View File

@ -1,12 +1,8 @@
package com.iqser.red.service.persistence.service.v1.api.model.data.notification;
import com.iqser.red.service.persistence.service.v1.api.utils.JSONConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
import java.time.OffsetDateTime;
@ -47,7 +43,8 @@ public class Notification {
@Column
private String notificationDetails;
@Convert(converter = JSONConverter.class)
@Basic(fetch = FetchType.EAGER)
@Column(columnDefinition = "json")
@Convert(converter = JSONConverter.class)
private Map<String, Object> target = new HashMap<>();
}

View File

@ -1,13 +1,15 @@
package com.iqser.red.service.persistence.service.v1.api.utils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.HashMap;
import java.util.Map;
@Converter(autoApply = true)
@Converter
public class JSONConverter implements AttributeConverter<Map<String, Object>, String> {
private final ObjectMapper objectMapper = new ObjectMapper();
@ -22,6 +24,9 @@ public class JSONConverter implements AttributeConverter<Map<String, Object>, St
@SneakyThrows
@Override
public Map<String, Object> convertToEntityAttribute(String data) {
return objectMapper.readValue(data, Map.class);
TypeReference<HashMap<String, Object>> typeRef = new TypeReference<>() {
};
return objectMapper.readValue(data, typeRef);
}
}

View File

@ -10,6 +10,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.data.download.Down
import com.iqser.red.service.persistence.service.v1.api.model.data.notification.Notification;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.openfeign.support.PageJacksonModule;
import org.springframework.cloud.openfeign.support.SortJacksonModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@ -20,4 +23,15 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@EnableJpaRepositories(basePackageClasses = ColorsRepository.class)
@EnableFeignClients(basePackageClasses = {PDFTronRedactionClient.class})
public class PersistenceServiceProcessorConfiguration {
@Bean
public PageJacksonModule pageJacksonModule() {
return new PageJacksonModule();
}
@Bean
public SortJacksonModule sortJacksonModule() {
return new SortJacksonModule();
}
}

View File

@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
@ -52,7 +53,8 @@ public class AuditPersistenceService {
example.setUserId(auditRequest.getUserId());
example.setObjectId(auditRequest.getObjectId());
var result = auditRepository.findAll(Example.of(example), PageRequest.of(auditRequest.getPage(), auditRequest.getPageSize()));
var result = auditRepository.findAll(Example.of(example, ExampleMatcher.matchingAny().withIgnorePaths("recordId")),
PageRequest.of(auditRequest.getPage(), auditRequest.getPageSize()));
// after search, insert a record logging the search
this.insertRecord(AuditRequest.builder()

View File

@ -11,9 +11,7 @@ import java.util.List;
public interface AuditRepository extends JpaRepository<AuditModel,Long> {
@Query("SELECT a.category, count(a) as recordCount FROM AuditModel a GROUP BY a.category")
@Query("SELECT new com.iqser.red.service.persistence.service.v1.api.model.data.audit.CategoryModel(a.category, count(a)) FROM AuditModel a GROUP BY a.category")
List<CategoryModel> findCategories();
Page<AuditModel> findAllByObjectId(double price, Pageable pageable);
}

View File

@ -10,7 +10,7 @@ public interface EntryRepository extends JpaRepository<DictionaryEntry, Long> {
void deleteAllByTypeIdAndVersionAndValueIn(String typeId, long version, List<String> values);
@Query("update DictionaryEntry e set e.version = :version where e.type.id =:typeId and e.value in :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,11 +87,6 @@
<groupId>com.iqser.red.commons</groupId>
<artifactId>spring-commons</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
@ -157,22 +152,10 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.iqser.red.commons</groupId>
<artifactId>cassandra-commons</artifactId>
<exclusions>
<exclusion>
<artifactId>gremlin-driver</artifactId>
<groupId>org.apache.tinkerpop</groupId>
</exclusion>
</exclusions>
<scope>test</scope>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>cassandra</artifactId>
<version>1.15.0</version>
<artifactId>postgresql</artifactId>
<version>1.15.3</version>
<scope>test</scope>
</dependency>
<dependency>

View File

@ -1,10 +1,10 @@
package com.iqser.red.service.file.management.v1.server;
package com.iqser.red.service.peristence.v1.server;
import com.iqser.red.commons.spring.DefaultWebMvcConfiguration;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.file.management.v1.server.configuration.CleanupDownloadSchedulerConfiguration;
import com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.file.management.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.configuration.CleanupDownloadSchedulerConfiguration;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.service.persistence.management.v1.processor.PersistenceServiceProcessorConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server;
package com.iqser.red.service.peristence.v1.server;
import lombok.experimental.UtilityClass;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.client;
package com.iqser.red.service.peristence.v1.server.client;
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.client;
package com.iqser.red.service.peristence.v1.server.client;
import com.iqser.red.service.search.v1.resources.SearchResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.configuration;
package com.iqser.red.service.peristence.v1.server.configuration;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.configuration;
package com.iqser.red.service.peristence.v1.server.configuration;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AuditModel;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.commons.spring.ErrorMessage;
import com.iqser.red.service.file.management.v1.server.exception.InvalidRulesException;
import com.iqser.red.service.peristence.v1.server.exception.InvalidRulesException;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.TextNormalizationUtilities;
import com.iqser.red.service.file.management.v1.server.validation.DictionaryValidator;
import com.iqser.red.service.peristence.v1.server.TextNormalizationUtilities;
import com.iqser.red.service.peristence.v1.server.validation.DictionaryValidator;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.service.v1.api.model.DigitalSignatureUpdateModel;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DigitalSignature;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig;

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributePersistenceService;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.file.management.v1.server.service.FileService;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.service.FileService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;

View File

@ -1,9 +1,10 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.file.management.v1.server.model.DownloadJob;
import com.iqser.red.service.file.management.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.peristence.v1.server.model.DownloadJob;
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
@ -22,8 +23,6 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.DOWNLOAD_QUEUE;
@RestController
@RequiredArgsConstructor
public class DownloadController implements DownloadResource {
@ -77,7 +76,7 @@ public class DownloadController implements DownloadResource {
private void addToDownloadQueue(DownloadJob downloadJob, int priority) {
try {
rabbitTemplate.convertAndSend(DOWNLOAD_QUEUE, objectMapper.writeValueAsString(downloadJob), message -> {
rabbitTemplate.convertAndSend(MessagingConfiguration.DOWNLOAD_QUEUE, objectMapper.writeValueAsString(downloadJob), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.FileAttributesGeneralConfiguration;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.google.common.collect.Lists;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.file.management.v1.server.service.ExcludeFromAnalysisService;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.service.ExcludeFromAnalysisService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.service.v1.api.resources.FileStatusProcessingUpdateResource;
import com.iqser.red.service.file.management.v1.server.service.FileStatusProcessingUpdateService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusProcessingUpdateService;
import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
import lombok.RequiredArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@ -7,7 +7,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.iqser.red.service.persistence.service.v1.api.model.LicenseReport;
import com.iqser.red.service.persistence.service.v1.api.model.LicenseReportRequest;
import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource;
import com.iqser.red.service.file.management.v1.server.service.LicenseReportService;
import com.iqser.red.service.peristence.v1.server.service.LicenseReportService;
import lombok.RequiredArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.service.ManualRedactionService;
import com.iqser.red.service.peristence.v1.server.service.ManualRedactionService;
import com.iqser.red.service.persistence.service.v1.api.model.*;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.*;
import com.iqser.red.service.persistence.service.v1.api.resources.ManualRedactionResource;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AddNotificationRequest;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.file.management.v1.server.service.IndexingService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
import com.iqser.red.service.peristence.v1.server.service.IndexingService;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;

View File

@ -1,11 +1,11 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.iqser.red.service.persistence.service.v1.api.resources.RedactionLogResource;
import com.iqser.red.service.file.management.v1.server.service.RedactionLogService;
import com.iqser.red.service.peristence.v1.server.service.RedactionLogService;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.SectionGrid;

View File

@ -1,6 +1,6 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.file.management.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
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.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.exception.InvalidRulesException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.SMTPConfiguration;

View File

@ -1,10 +1,10 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
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;
import com.iqser.red.service.file.management.v1.server.service.FileService;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.peristence.v1.server.service.FileService;
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronFlattenRequest;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronFlattenResponse;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronRedactionRequest;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.controller;
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.Watermark;
import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.exception;
package com.iqser.red.service.peristence.v1.server.exception;
public class InvalidRulesException extends RuntimeException {

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.exception;
package com.iqser.red.service.peristence.v1.server.exception;
public class JSONParseException extends RuntimeException {

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.model;
package com.iqser.red.service.peristence.v1.server.model;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.file.management.v1.server.client.SearchClient;
import com.iqser.red.service.file.management.v1.server.controller.ReanalysisController;
import com.iqser.red.service.peristence.v1.server.client.SearchClient;
import com.iqser.red.service.peristence.v1.server.controller.ReanalysisController;
import com.iqser.red.service.search.v1.model.MatchedSection;
import com.iqser.red.service.search.v1.model.SearchRequest;
import lombok.Builder;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.google.common.collect.Sets;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;

View File

@ -1,7 +1,7 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.file.management.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;
import com.iqser.red.service.redaction.v1.model.RedactionLog;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
@ -17,7 +17,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.OffsetDateTime;
import java.util.Arrays;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus;

View File

@ -1,10 +1,11 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.controller.RulesController;
import com.iqser.red.service.peristence.v1.server.controller.RulesController;
import com.iqser.red.service.pdftron.redaction.v1.api.model.OcrRequestMessage;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.persistence.management.v1.processor.exception.UserNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
@ -23,9 +24,6 @@ import java.time.OffsetDateTime;
import java.util.List;
import java.util.Set;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.OCR_QUEUE;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.REDACTION_QUEUE;
@Slf4j
@Service
@RequiredArgsConstructor
@ -237,7 +235,7 @@ public class FileStatusService {
analyseRequest.setExcludedPages(fileStatus.getExcludedPages());
try {
rabbitTemplate.convertAndSend(REDACTION_QUEUE, objectMapper.writeValueAsString(analyseRequest), message -> {
rabbitTemplate.convertAndSend(MessagingConfiguration.REDACTION_QUEUE, objectMapper.writeValueAsString(analyseRequest), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
@ -250,7 +248,7 @@ public class FileStatusService {
private void addToOcrQueue(String dossierId, String fileId, int priority) {
try {
rabbitTemplate.convertAndSend(OCR_QUEUE, objectMapper.writeValueAsString(new OcrRequestMessage(dossierId, fileId)), message -> {
rabbitTemplate.convertAndSend(MessagingConfiguration.OCR_QUEUE, objectMapper.writeValueAsString(new OcrRequestMessage(dossierId, fileId)), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});

View File

@ -1,7 +1,8 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
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.File;
@ -17,9 +18,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.DELETE_FROM_INDEX_QUEUE;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.INDEXING_QUEUE;
@Service
@RequiredArgsConstructor
public class IndexingService {
@ -65,7 +63,7 @@ public class IndexingService {
public void addToIndexingQueue(String dossierTemplateId, String dossierId, String fileId, int priority) {
try {
rabbitTemplate.convertAndSend(INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
.dossierTemplateId(dossierTemplateId)
.dossierId(dossierId)
.fileId(fileId)
@ -82,7 +80,7 @@ public class IndexingService {
public void addToDeleteFromIndexQueue(String dossierId, String fileId, int priority) {
try {
rabbitTemplate.convertAndSend(DELETE_FROM_INDEX_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
.dossierId(dossierId)
.fileId(fileId)
.build()), message -> {

View File

@ -1,11 +1,10 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import static java.util.stream.Collectors.toList;
import java.time.Instant;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.persistence.service.v1.api.model.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.iqser.red.service.file.management.v1.server.controller.DictionaryController;
import com.iqser.red.service.peristence.v1.server.controller.DictionaryController;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;
import com.iqser.red.service.persistence.service.v1.api.model.*;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.persistence.service.v1.api.model.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;

View File

@ -1,9 +1,9 @@
package com.iqser.red.service.file.management.v1.server.service;
package com.iqser.red.service.peristence.v1.server.service;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
import com.iqser.red.service.redaction.v1.model.SectionGrid;

View File

@ -1,10 +1,10 @@
package com.iqser.red.service.file.management.v1.server.service.download;
package com.iqser.red.service.peristence.v1.server.service.download;
import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.service.persistence.service.v1.api.model.data.download.DownloadStatus;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierStatus;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.file.management.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.storage.commons.service.StorageService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,7 +1,8 @@
package com.iqser.red.service.file.management.v1.server.service.download;
package com.iqser.red.service.peristence.v1.server.service.download;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.file.management.v1.server.model.DownloadJob;
import com.iqser.red.service.peristence.v1.server.model.DownloadJob;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.download.DownloadStatus;
import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage;
@ -15,8 +16,6 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.*;
@Slf4j
@Service
@RequiredArgsConstructor
@ -27,7 +26,7 @@ public class DownloadDLQMessageReceiver {
private final RetryTemplate retryTemplate;
@RabbitListener(queues = DOWNLOAD_DLQ)
@RabbitListener(queues = MessagingConfiguration.DOWNLOAD_DLQ)
public void handleDlqMessage(Message failedMessage) throws IOException {
DownloadJob downloadJob = objectMapper.readValue(failedMessage.getBody(), DownloadJob.class);
@ -37,7 +36,7 @@ public class DownloadDLQMessageReceiver {
}
@RabbitListener(queues = REPORT_DLQ)
@RabbitListener(queues = MessagingConfiguration.REPORT_DLQ)
public void handleReportDlqMessage(Message failedMessage) throws IOException {
ReportRequestMessage reportRequestMessage = objectMapper.readValue(failedMessage.getBody(), ReportRequestMessage.class);
@ -47,7 +46,7 @@ public class DownloadDLQMessageReceiver {
}
@RabbitListener(queues = REPORT_RESULT_DLQ)
@RabbitListener(queues = MessagingConfiguration.REPORT_RESULT_DLQ)
public void handleReportResponseDlqMessage(Message failedMessage) throws IOException {
ReportResultMessage reportResultMessage = objectMapper.readValue(failedMessage.getBody(), ReportResultMessage.class);

View File

@ -1,9 +1,10 @@
package com.iqser.red.service.file.management.v1.server.service.download;
package com.iqser.red.service.peristence.v1.server.service.download;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.file.management.v1.server.model.DownloadJob;
import com.iqser.red.service.file.management.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.model.DownloadJob;
import com.iqser.red.service.peristence.v1.server.service.DossierService;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.File;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.ReportTemplate;
@ -20,13 +21,10 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.DOWNLOAD_QUEUE;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.REPORT_QUEUE;
@Slf4j
@Service
@RequiredArgsConstructor
@RabbitListener(queues = DOWNLOAD_QUEUE)
@RabbitListener(queues = MessagingConfiguration.DOWNLOAD_QUEUE)
public class DownloadMessageReceiver {
private final ObjectMapper objectMapper;
@ -67,7 +65,7 @@ public class DownloadMessageReceiver {
private void addReportQueue(ReportRequestMessage reportRequestMessage, int priority) {
try {
rabbitTemplate.convertAndSend(REPORT_QUEUE, objectMapper.writeValueAsString(reportRequestMessage), message -> {
rabbitTemplate.convertAndSend(MessagingConfiguration.REPORT_QUEUE, objectMapper.writeValueAsString(reportRequestMessage), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});

View File

@ -1,9 +1,9 @@
package com.iqser.red.service.file.management.v1.server.service.download;
package com.iqser.red.service.peristence.v1.server.service.download;
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.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.peristence.v1.server.service.RedactionLogService;
import com.iqser.red.service.peristence.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.NotFoundException;

View File

@ -1,9 +1,9 @@
package com.iqser.red.service.file.management.v1.server.service.download;
package com.iqser.red.service.peristence.v1.server.service.download;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.iqser.red.service.file.management.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
import com.iqser.red.service.redaction.report.v1.api.model.ReportResultMessage;
import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation;

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.file.management.v1.server.service.download;
import static com.iqser.red.service.file.management.v1.server.configuration.MessagingConfiguration.REPORT_RESULT_QUEUE;
package com.iqser.red.service.peristence.v1.server.service.download;
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
@ -16,7 +15,7 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
@RequiredArgsConstructor
@RabbitListener(queues = REPORT_RESULT_QUEUE)
@RabbitListener(queues = MessagingConfiguration.REPORT_RESULT_QUEUE)
public class DownloadReportMessageReceiver {
private final ObjectMapper objectMapper;
@ -33,4 +32,4 @@ public class DownloadReportMessageReceiver {
log.info("Successfully prepared download {}", reportResultMessage.getDownloadId());
}
}
}

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.settings;
package com.iqser.red.service.peristence.v1.server.settings;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.utils;
package com.iqser.red.service.peristence.v1.server.utils;
import lombok.AllArgsConstructor;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.utils;
package com.iqser.red.service.peristence.v1.server.utils;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.validation;
package com.iqser.red.service.peristence.v1.server.validation;
import lombok.experimental.UtilityClass;
import org.apache.commons.lang3.StringUtils;

View File

@ -13,19 +13,15 @@ storage:
key: minioadmin
secret: minioadmin
spring:
datasource:
jdbcUrl: jdbc:h2:mem:testdb
driverClassName: org.h2.Driver
username: sa
password: password
platform: org.hibernate.dialect.H2Dialect
url: jdbc:postgresql://localhost:5432/redaction
driverClassName: org.postgresql.Driver
username: redaction
password: redaction
platform: org.hibernate.dialect.PostgreSQL95Dialect
jpa:
database-platform: org.hibernate.dialect.H2Dialect
database-platform: org.hibernate.dialect.PostgreSQL95Dialect
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
generate-ddl: true
open-in-view: true

View File

@ -14,7 +14,6 @@ spring:
datasource:
url: jdbc:postgresql://${PSQL_HOST}:${PSQL_PORT}/${PSQL_DATABASE}
jdbcUrl: jdbc:postgresql://${PSQL_HOST}:${PSQL_PORT}/${PSQL_DATABASE}
driverClassName: org.postgresql.Driver
username: ${PSQL_USERNAME}
password: ${PSQL_PASSWORD}
@ -65,3 +64,4 @@ storage:
endpoint: 'http://localhost:9000'
key: minioadmin
secret: minioadmin

View File

@ -0,0 +1,8 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.AuditResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "AuditClient", url = "http://localhost:${server.port}")
public interface AuditClient extends AuditResource {
}

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.client;
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.client;
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.client;
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -0,0 +1,9 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationRepository;
import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "NotificationClient", url = "http://localhost:${server.port}")
public interface NotificationClient extends NotificationResource {
}

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.client;
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.client;
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource;
import org.springframework.cloud.openfeign.FeignClient;

View File

@ -1,16 +1,14 @@
package com.iqser.red.service.file.management.v1.server.integration.service;
package com.iqser.red.service.peristence.v1.server.integration.service;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierTemplateRequest;
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DownloadFileType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.OffsetDateTime;
import java.util.List;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;

View File

@ -1,12 +1,9 @@
package com.iqser.red.service.file.management.v1.server.integration.service;
package com.iqser.red.service.peristence.v1.server.integration.service;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.integration.client.DossierClient;
import com.iqser.red.service.file.management.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierRequest;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierTemplateRequest;
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DownloadFileType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -1,13 +1,12 @@
package com.iqser.red.service.file.management.v1.server.integration.service;
package com.iqser.red.service.peristence.v1.server.integration.service;
import com.iqser.red.service.file.management.v1.server.integration.client.FileClient;
import com.iqser.red.service.file.management.v1.server.integration.client.UploadClient;
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.peristence.v1.server.integration.client.UploadClient;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.JSONPrimitive;
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.File;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@ -0,0 +1,44 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.AuditClient;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AuditRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.AuditSearchRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.audit.CategoryModel;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
public class AuditTest extends AbstractPersistenceServerServiceTest {
@Autowired
private AuditClient auditClient;
@Autowired
private AuditRepository auditRepository;
@Test
public void testAudit() {
assertThat(auditClient.getCategories()).isEmpty();
auditClient.audit(AuditRequest.builder().category("c1").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build());
auditClient.audit(AuditRequest.builder().category("c1").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build());
auditClient.audit(AuditRequest.builder().category("c2").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build());
assertThat(auditClient.getCategories().size()).isEqualTo(2);
assertThat(auditClient.getCategories().stream().filter(c -> c.getCategory().equals("c1")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(2);
assertThat(auditClient.getCategories().stream().filter(c -> c.getCategory().equals("c2")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(1);
var result =auditClient.search(AuditSearchRequest.builder().category("c1").page(0).pageSize(10).build());
assertThat(result.getTotalElements()).isEqualTo(2);
}
}

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.integration.tests;
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.file.management.v1.server.integration.utils.AbstractFileManagementServerServiceTest;
import com.iqser.red.service.file.management.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.file.management.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierTemplateRequest;
import org.junit.Test;
import org.springframework.beans.BeanUtils;
@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
public class DossierTemplateTest extends AbstractFileManagementServerServiceTest {
public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.file.management.v1.server.integration.tests;
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.file.management.v1.server.integration.utils.AbstractFileManagementServerServiceTest;
import com.iqser.red.service.file.management.v1.server.integration.client.DossierClient;
import com.iqser.red.service.file.management.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.persistence.service.v1.api.model.CreateOrUpdateDossierRequest;
import org.junit.Test;
import org.springframework.beans.BeanUtils;
@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
public class DossierTest extends AbstractFileManagementServerServiceTest {
public class DossierTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTesterAndProvider dossierTesterAndProvider;

View File

@ -1,26 +1,21 @@
package com.iqser.red.service.file.management.v1.server.integration.tests;
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.amazonaws.services.s3.transfer.Upload;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.integration.client.FileClient;
import com.iqser.red.service.file.management.v1.server.integration.client.UploadClient;
import com.iqser.red.service.file.management.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.file.management.v1.server.integration.service.FileTesterAndProvider;
import com.iqser.red.service.file.management.v1.server.integration.utils.AbstractFileManagementServerServiceTest;
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.peristence.v1.server.integration.client.UploadClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileStatus;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.assertj.core.api.Assertions.as;
import static org.assertj.core.api.Assertions.assertThat;
public class FileTest extends AbstractFileManagementServerServiceTest {
public class FileTest extends AbstractPersistenceServerServiceTest {
@Autowired
private FileTesterAndProvider fileTesterAndProvider;
@ -99,9 +94,11 @@ public class FileTest extends AbstractFileManagementServerServiceTest {
fileClient.setStatusUnderReview(dossier.getId(), file.getId());
uploadClient.deleteFile(dossier.getId(),file.getId());
var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId());
assertThat(softDeletedFiles.size()).isEqualTo(1);
var activeFiles = fileClient.getDossierStatus(dossier.getId());
assertThat(activeFiles.size()).isEqualTo(0);

View File

@ -0,0 +1,13 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.AuditClient;
import com.iqser.red.service.peristence.v1.server.integration.client.NotificationClient;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import org.springframework.beans.factory.annotation.Autowired;
public class NotificationTest extends AbstractPersistenceServerServiceTest {
@Autowired
private NotificationClient notificationClient;
}

View File

@ -1,9 +1,9 @@
package com.iqser.red.service.file.management.v1.server.integration.tests;
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.file.management.v1.server.integration.client.ViewedPagesClient;
import com.iqser.red.service.file.management.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.file.management.v1.server.integration.service.FileTesterAndProvider;
import com.iqser.red.service.file.management.v1.server.integration.utils.AbstractFileManagementServerServiceTest;
import com.iqser.red.service.peristence.v1.server.integration.client.ViewedPagesClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -12,7 +12,7 @@ import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class ViewedPagesTest extends AbstractFileManagementServerServiceTest {
public class ViewedPagesTest extends AbstractPersistenceServerServiceTest {
@Autowired

View File

@ -1,20 +1,18 @@
package com.iqser.red.service.file.management.v1.server.integration.utils;
package com.iqser.red.service.peristence.v1.server.integration.utils;
import com.iqser.red.service.file.management.v1.server.Application;
import com.iqser.red.service.file.management.v1.server.client.RedactionClient;
import com.iqser.red.service.file.management.v1.server.client.SearchClient;
import com.iqser.red.service.file.management.v1.server.integration.client.FileClient;
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.peristence.v1.server.Application;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.client.SearchClient;
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronRedactionClient;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ViewedPagesRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.*;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
import com.iqser.red.storage.commons.service.StorageService;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@ -23,18 +21,24 @@ 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.boot.test.util.TestPropertyValues;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.*;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.testcontainers.containers.PostgreSQLContainer;
import static org.mockito.Mockito.when;
@RunWith(SpringRunner.class)
@EnableFeignClients(basePackageClasses = FileClient.class)
@Import(AbstractFileManagementServerServiceTest.TestConfiguration.class)
@Import(AbstractPersistenceServerServiceTest.TestConfiguration.class)
@ContextConfiguration(initializers = {AbstractPersistenceServerServiceTest.Initializer.class})
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public abstract class AbstractFileManagementServerServiceTest {
public abstract class AbstractPersistenceServerServiceTest {
@Autowired
private StorageService storageService;
@ -51,6 +55,22 @@ public abstract class AbstractFileManagementServerServiceTest {
@MockBean
protected PDFTronRedactionClient pdfTronRedactionClient;
@ClassRule
public static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer("postgres:11.1")
.withDatabaseName("integration-tests-db")
.withUsername("sa")
.withPassword("sa");
static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
TestPropertyValues.of(
"spring.datasource.url=" + postgreSQLContainer.getJdbcUrl(),
"spring.datasource.username=" + postgreSQLContainer.getUsername(),
"spring.datasource.password=" + postgreSQLContainer.getPassword()
).applyTo(configurableApplicationContext.getEnvironment());
}
}
@Before
public void setupOptimize() {
when(pdfTronRedactionClient.optimize(Mockito.any())).thenAnswer((args) ->
@ -59,7 +79,7 @@ public abstract class AbstractFileManagementServerServiceTest {
@Configuration
@EnableAutoConfiguration(exclude = {StorageAutoConfiguration.class, RabbitAutoConfiguration.class})
@ComponentScan("com.iqser.red.service.file.management.v1.server")
@ComponentScan("com.iqser.red.service.persistence")
public static class TestConfiguration {
@Bean
@ -88,13 +108,20 @@ public abstract class AbstractFileManagementServerServiceTest {
@Autowired
private ViewedPagesRepository viewedPagesRepository;
@Autowired
private NotificationRepository notificationRepository;
@Autowired
private AuditRepository auditRepository;
@After
public void afterTests(){
public void afterTests() {
viewedPagesRepository.deleteAll();
fileRepository.deleteAll();
dossierRepository.deleteAll();
dossierTemplateRepository.deleteAll();
notificationRepository.deleteAll();
auditRepository.deleteAll();
}
}

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.integration.utils;
package com.iqser.red.service.peristence.v1.server.integration.utils;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import com.iqser.red.storage.commons.service.StorageService;

View File

@ -1,4 +1,4 @@
package com.iqser.red.service.file.management.v1.server.utils;
package com.iqser.red.service.peristence.v1.server.utils;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,16 @@
spring:
datasource:
driverClassName: org.postgresql.Driver
platform: org.hibernate.dialect.PostgreSQL95Dialect
jpa:
database-platform: org.hibernate.dialect.PostgreSQL95Dialect
hibernate:
ddl-auto: update
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
generate-ddl: true
rabbitmq:
host: ${RABBITMQ_HOST:localhost}
port: ${RABBITMQ_PORT:5672}