work in progress on e2e test and added missing controllers

This commit is contained in:
Timo Bejan 2021-09-15 13:29:01 +03:00
parent 9b07692fb8
commit a6798eb613
57 changed files with 736 additions and 1953 deletions

View File

@ -37,7 +37,7 @@ public class PlanSpec {
* 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.
//By default, credentials are read from the '.credentials' file.
BambooServer bambooServer = new BambooServer("http://localhost:8085");
Plan plan = new PlanSpec().createPlan();

View File

@ -66,13 +66,16 @@ public class Dossier {
@ManyToOne(fetch = FetchType.LAZY)
private DossierTemplate dossierTemplate;
@Column(updatable=false, insertable=false, name = "dossier_template_id")
@Column(updatable = false, insertable = false, name = "dossier_template_id")
private String dossierTemplateId;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "dossiers")
private List<ReportTemplate> reportTemplates = new ArrayList<>();
@OneToMany
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dossier")
private List<Type> dossierTypes = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "dossier")
private List<DossierAttribute> dossierAttributes = new ArrayList<>();
}

View File

@ -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 DossierAttributesConfigResource {
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);
}

View File

@ -1,7 +1,6 @@
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttribute;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@ -9,42 +8,27 @@ import java.util.List;
public interface DossierAttributesResource {
String DOSSIER_ATTRIBUTES_PATH = "/dossierAttributes";
String DOSSIER_ATTRIBUTE_PATH = "/dossierAttribute";
String BASE_CONFIG_PATH = "/baseConfig";
String REST_PATH = "/dossierAttributes";
String SET_PATH = "/set";
String UPDATE_PATH = "/update";
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
String DOSSIER_ID_PARAM = "dossierId";
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
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);
String DOSSIER_ATTRIBUTE_ID_PARAM = "dossierAttributeId";
String DOSSIER_ATTRIBUTE_ID_PATH_PARAM = "/{" + DOSSIER_ATTRIBUTE_ID_PARAM + "}";
@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);
@PostMapping(value = REST_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
List<DossierAttribute> setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody List<DossierAttribute> dossierAttributes);
@PostMapping(value = REST_PATH + UPDATE_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody DossierAttribute dossierAttribute);
@ResponseStatus(HttpStatus.NO_CONTENT)
@PostMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete")
void deleteDossierAttributes(@RequestBody List<String> dossierAttributeIds);
@GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
List<DossierAttribute> getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId);
@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);
@DeleteMapping(value = REST_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM + DOSSIER_ATTRIBUTE_ID_PATH_PARAM)
void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId);
}

View File

@ -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 FileAttributesConfigResource {
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);
}

View File

@ -1,64 +1,34 @@
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 com.iqser.red.service.persistence.service.v1.api.model.ImportCsvRequest;
import com.iqser.red.service.persistence.service.v1.api.model.ImportCsvResponse;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
public interface FileAttributesResource {
String FILE_ATTRIBUTES_PATH = "/fileAttributes";
String FILE_ATTRIBUTE_PATH = "/fileAttribute";
String BASE_CONFIG_PATH = "/baseConfig";
String REST_PATH = "/fileAttributes";
String CSV_IMPORT_PATH = "/csvImport";
String SET_PATH = "/set";
String DOSSIER_TEMPLATE_ID = "dossierTemplateId";
String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}";
String DOSSIER_ID_PARAM = "dossierId";
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
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);
String FILE_ID = "fileId";
String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}";
@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);
@PostMapping(value = REST_PATH + CSV_IMPORT_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody ImportCsvRequest importCsvRequest);
@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);
@PostMapping(value = REST_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
@RequestBody Map<String,String> fileAttributes);
}

View File

@ -0,0 +1,14 @@
package com.iqser.red.service.persistence.service.v1.api.model;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.assertj.core.api.Assertions.assertThat;
public class IdentityTest {
@Test
public void mockTest(){
assertThat(1).isEqualTo(1);
}
}

View File

@ -1,9 +0,0 @@
package com.iqser.red.service.persistence.management.v1.processor.exception;
public class FileNotFoundException extends RuntimeException {
public FileNotFoundException(String message) {
super(message);
}
}

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ManualRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.model.AddRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationId;
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.ManualRedactionEntry;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ManualRedactionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@ -40,7 +41,7 @@ public class AddRedactionPersistenceService {
return manualRedactionRepository.findById(new AnnotationId(annotationId, fileId))
.filter(mre -> mre.getSoftDeletedTime() == null)
.orElseThrow(() ->
new FileNotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
}
@ -51,13 +52,13 @@ public class AddRedactionPersistenceService {
}
@Transactional
public void hardDelete(String fileId, String annotationId) {
manualRedactionRepository.deleteById(new AnnotationId(annotationId, fileId));
}
public void softDelete(String fileId, String annotationId, OffsetDateTime softDeleteTime) {
manualRedactionRepository.findById(new AnnotationId(annotationId, fileId)).ifPresent(mre -> mre.setSoftDeletedTime(softDeleteTime));
}

View File

@ -1,11 +1,12 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.Comment;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;
@ -46,6 +47,7 @@ public class CommentPersistenceService {
return commentRepository.existsByFileIdAndSoftDeletedTimeIsNull(fileId);
}
@Transactional
public void hardDelete(long commentId) {
commentRepository.deleteById(commentId);
}

View File

@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Optional;
@ -86,6 +87,7 @@ public class DictionaryPersistenceService {
}
@Transactional
public void deleteType(String typeId) {
typeRepository.deleteById(typeId);
}

View File

@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@ -50,6 +51,7 @@ public class DossierAttributeConfigPersistenceService {
}
}
@Transactional
public List<DossierAttributeConfig> setDossierAttributesConfig(String dossierTemplateId, List<DossierAttributeConfig> dossierAttributesConfig) {
dossierAttributeConfigRepository.deleteByDossierTemplateId(dossierTemplateId);
@ -63,10 +65,12 @@ public class DossierAttributeConfigPersistenceService {
return getDossierAttributes(dossierTemplateId);
}
@Transactional
public void deleteDossierAttribute(String dossierAttributeId) {
dossierAttributeConfigRepository.deleteById(dossierAttributeId);
}
@Transactional
public void deleteDossierAttributes(List<String> dossierAttributeIds) {
dossierAttributeIds.forEach(dossierAttributeConfigRepository::deleteById);
}

View File

@ -1,10 +1,13 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttribute;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttribute;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
@Service
@ -13,14 +16,14 @@ import java.util.List;
public class DossierAttributePersistenceService {
private final DossierAttributeRepository dossierAttributeRepository;
private final DossierRepository dossierRepository;
public void insertDossierAttribute(String dossierId, String dossierAttributeId, String dossierAttributeValue) {
DossierAttribute dossierAttribute = new DossierAttribute();
dossierAttribute.setId(new DossierAttribute.DossierAttributeId(dossierId, dossierAttributeId));
dossierAttribute.setId(new DossierAttribute.DossierAttributeId(null, dossierAttributeId));
dossierAttribute.setValue(dossierAttributeValue);
dossierAttribute.setDossier(dossierRepository.getOne(dossierId));
dossierAttributeRepository.save(dossierAttribute);
}
@ -29,13 +32,24 @@ public class DossierAttributePersistenceService {
dossierAttributeRepository.findById(new DossierAttribute.DossierAttributeId(dossierId, dossierAttributeId)).ifPresent(dossierAttribute -> dossierAttribute.setValue(dossierAttributeValue));
}
@Transactional
public void deleteDossierAttribute(String dossierId) {
dossierAttributeRepository.deleteByDossierId(dossierId);
}
@Transactional
public void deleteDossierAttribute(String dossierId, String dossierAttributeId) {
dossierAttributeRepository.deleteById(new DossierAttribute.DossierAttributeId(dossierId, dossierAttributeId));
}
public List<DossierAttribute> getDossierAttributes(String dossierId) {
return dossierAttributeRepository.findByIdDossierId(dossierId);
}
public DossierAttribute findOne(String dossierId, String dossierAttributeId) {
return dossierAttributeRepository.findById(new DossierAttribute.DossierAttributeId(dossierId, dossierAttributeId))
.orElseThrow(() -> new NotFoundException("Dossier Attribute not set"));
}

View File

@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Set;
@ -23,8 +24,6 @@ import static com.iqser.red.service.persistence.management.v1.processor.exceptio
@RequiredArgsConstructor
public class DossierPersistenceService {
private static final String ACTIVE_STATUS = "ACTIVE";
private static final String DELETED_STATUS = "DELETED";
private final DossierRepository dossierRepository;
private final DossierTemplateRepository dossierTemplateRepository;

View File

@ -1,13 +1,14 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
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 com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadStatusRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
@ -50,7 +51,6 @@ public class DownloadStatusPersistenceService {
}
public void updateLastDownload(String storageId) {
downloadStatusRepository.findById(storageId).ifPresent(downloadStatus -> {
@ -60,6 +60,7 @@ public class DownloadStatusPersistenceService {
}
@Transactional
public void deleteStatus(String storageId) {
downloadStatusRepository.deleteById(storageId);
}

View File

@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.stream.Collectors;
@ -36,6 +37,7 @@ public class EntryPersistenceService {
}
@Transactional
public void deleteEntries(String typeId, List<String> values, long version) {
entryRepository.deleteAllByTypeIdAndVersionAndValueIn(typeId, version, values);
}

View File

@ -13,6 +13,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.WordUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@ -69,6 +70,7 @@ public class FileAttributeConfigPersistenceService {
return fileAttributesGeneralConfigurationRepository.findById(dossierTemplateId).orElseThrow(() -> new NotFoundException("File Attribute Config not found"));
}
@Transactional
public List<FileAttributeConfig> setFileAttributesConfig(String dossierTemplateId, List<FileAttributeConfig> fileAttributesConfig) {
fileAttributeConfigRepository.deleteByDossierTemplateId(dossierTemplateId);
@ -82,10 +84,12 @@ public class FileAttributeConfigPersistenceService {
return getFileAttributes(dossierTemplateId);
}
@Transactional
public void deleteFileAttribute(String fileAttributeId) {
fileAttributeConfigRepository.deleteById(fileAttributeId);
}
@Transactional
public void deleteFileAttributes(List<String> fileAttributeIds) {
fileAttributeIds.forEach(fileAttributeConfigRepository::deleteById);
}

View File

@ -1,16 +1,17 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ForceRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.model.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationId;
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.ManualForceRedaction;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ForceRedactionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@ -42,6 +43,7 @@ public class ForceRedactionPersistenceService {
}
@Transactional
public void hardDelete(String fileId, String annotationId) {
forceRedactionRepository.deleteById(new AnnotationId(annotationId, fileId));
}
@ -59,7 +61,7 @@ public class ForceRedactionPersistenceService {
return forceRedactionRepository.findById(new AnnotationId(annotationId, fileId))
.filter(mre -> mre.getSoftDeletedTime() == null)
.orElseThrow(() ->
new FileNotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
}

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ImageRecategorizationRepository;
import com.iqser.red.service.persistence.service.v1.api.model.ImageRecategorizationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationId;
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.ManualImageRecategorization;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ImageRecategorizationRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@ -41,11 +42,11 @@ public class ImageRecategorizationPersistenceService {
}
@Transactional
public void hardDelete(String fileId, String annotationId) {
imageRecategorizationRepository.deleteById(new AnnotationId(annotationId, fileId));
}
public void softDelete(String fileId, String annotationId, OffsetDateTime softDeleteTime) {
imageRecategorizationRepository.findById(new AnnotationId(annotationId, fileId)).ifPresent(mre -> mre.setSoftDeletedTime(softDeleteTime));
@ -60,7 +61,7 @@ public class ImageRecategorizationPersistenceService {
return imageRecategorizationRepository.findById(new AnnotationId(annotationId, fileId))
.filter(mre -> mre.getSoftDeletedTime() == null)
.orElseThrow(() ->
new FileNotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
}

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisChangeRepository;
import com.iqser.red.service.persistence.service.v1.api.model.LegalBasisChangeRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationId;
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.ManualLegalBasisChange;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisChangeRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@ -31,6 +32,7 @@ public class LegalBasisChangePersistenceService {
}
@Transactional
public void hardDelete(String fileId, String annotationId) {
legalBasisChangeRepository.deleteById(new AnnotationId(annotationId, fileId));
}
@ -60,7 +62,7 @@ public class LegalBasisChangePersistenceService {
return legalBasisChangeRepository.findById(new AnnotationId(annotationId, fileId))
.filter(mre -> mre.getSoftDeletedTime() == null)
.orElseThrow(() ->
new FileNotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
}

View File

@ -9,6 +9,7 @@ import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
@ -53,6 +54,7 @@ public class NotificationPersistenceService {
}
@Transactional
public void hardDelete(long notificationId) {
notificationRepository.deleteById(notificationId);
}

View File

@ -1,15 +1,16 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RemoveRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.model.RemoveRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.AnnotationId;
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.IdRemoval;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RemoveRedactionRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.Set;
import java.util.stream.Collectors;
@ -39,7 +40,7 @@ public class RemoveRedactionPersistenceService {
return removeRedactionRepository.findById(new AnnotationId(annotationId, fileId))
.filter(mre -> mre.getSoftDeletedTime() == null)
.orElseThrow(() ->
new FileNotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId));
}
@ -47,11 +48,11 @@ public class RemoveRedactionPersistenceService {
return removeRedactionRepository.findByIdFileId(fileId).stream().filter(mre -> includeDeletions || mre.getSoftDeletedTime() == null).collect(Collectors.toSet());
}
@Transactional
public void hardDelete(String fileId, String annotationId) {
removeRedactionRepository.deleteById(new AnnotationId(annotationId, fileId));
}
public void softDelete(String fileId, String annotationId, OffsetDateTime softDeleteTime) {
removeRedactionRepository.findById(new AnnotationId(annotationId, fileId)).ifPresent(mre -> mre.setSoftDeletedTime(softDeleteTime));
}

View File

@ -7,6 +7,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
@Service
@ -33,6 +34,7 @@ public class ReportTemplatePersistenceService {
}
@Transactional
public void delete(String templateId) {
reportTemplateRepository.deleteById(templateId);
}

View File

@ -1,8 +1,8 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.RuleSet;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RuleSetRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.RuleSet;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

View File

@ -7,6 +7,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Slf4j
@Service
@RequiredArgsConstructor
@ -14,6 +16,7 @@ public class SMTPConfigurationService {
private final SMTPRepository smtpRepository;
@Transactional
public void deleteConfiguration() {
smtpRepository.deleteById(SMTPConfiguration.ID);
}

View File

@ -1,10 +1,12 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
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.service.v1.api.model.data.annotations.ViewedPage;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
@ -12,18 +14,20 @@ import java.util.List;
@RequiredArgsConstructor
public class ViewedPagesPersistenceService {
private final ViewedPagesRepository viewedPagesRepository;
private final FileRepository fileRepository;
public void insertPage(String fileId, String userId, int page) {
var viewedPage = new ViewedPage();
viewedPage.setViewedTime(OffsetDateTime.now());
viewedPage.setId(new ViewedPage.ViewedPageId(fileId, page, userId));
viewedPage.setId(new ViewedPage.ViewedPageId(null, page, userId));
viewedPage.setFile(fileRepository.getOne(fileId));
viewedPagesRepository.save(viewedPage);
}
@Transactional
public void removePage(String fileId, String role, int page) {
viewedPagesRepository.deleteById(new ViewedPage.ViewedPageId(fileId, page, role));
}
@ -34,6 +38,7 @@ public class ViewedPagesPersistenceService {
}
@Transactional
public void deleteForFile(String fileId) {
viewedPagesRepository.deleteByFileId(fileId);
}

View File

@ -9,4 +9,5 @@ public interface DossierAttributeRepository extends JpaRepository<DossierAttribu
List<DossierAttribute> findByIdDossierId(String dossierId);
void deleteByDossierId(String dossierId);
}

View File

@ -0,0 +1,13 @@
package com.iqser.red.service.persistence.management.v1.processor.service;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class IdentityTest {
@Test
public void mockTest(){
assertThat(1).isEqualTo(1);
}
}

View File

@ -0,0 +1,48 @@
package com.iqser.red.service.file.management.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;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesConfigResource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequiredArgsConstructor
public class DossierAttributesConfigController implements DossierAttributesConfigResource {
private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
@Override
public DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody DossierAttributeConfig dossierAttributeConfig) {
return dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, dossierAttributeConfig);
}
@Override
public List<DossierAttributeConfig> setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody List<DossierAttributeConfig> dossierAttributesConfig) {
return dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, dossierAttributesConfig);
}
@Override
public void deleteDossierAttribute(@PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId) {
dossierAttributeConfigPersistenceService.deleteDossierAttribute(dossierAttributeId);
}
@Override
public void deleteDossierAttributes(@RequestBody List<String> dossierAttributeIds) {
dossierAttributeConfigPersistenceService.deleteDossierAttributes(dossierAttributeIds);
}
@Override
public List<DossierAttributeConfig> getDossierAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId);
}
}

View File

@ -1,48 +1,86 @@
package com.iqser.red.service.file.management.v1.server.controller;
import com.iqser.red.service.file.management.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;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttribute;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.transaction.Transactional;
import java.util.List;
@Slf4j
@RestController
@RequiredArgsConstructor
public class DossierAttributesController implements DossierAttributesResource {
private final DossierAttributePersistenceService dossierAttributePersistenceService;
private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
private final DossierService dossierService;
@Override
public DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody DossierAttributeConfig dossierAttributeConfig) {
return dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, dossierAttributeConfig);
public List<DossierAttribute> setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody List<DossierAttribute> dossierAttributes) {
var dossier = dossierService.getDossierById(dossierId);
var config = dossierAttributeConfigPersistenceService.getDossierAttributes(dossier.getDossierTemplateId());
for (DossierAttribute dossierAttribute : dossierAttributes) {
if (config.stream().map(DossierAttributeConfig::getId).noneMatch(id -> id.equals(dossierAttribute.getId().getDossierAttributeConfigId()))) {
throw new ConflictException("Dossier attribute configuration does not exist.");
}
}
dossierAttributePersistenceService.deleteDossierAttribute(dossierId);
for (DossierAttribute dossierAttribute : dossierAttributes) {
dossierAttributePersistenceService.insertDossierAttribute(dossierId, dossierAttribute.getId().getDossierAttributeConfigId(), dossierAttribute.getValue());
}
return getDossierAttributes(dossierId);
}
@Override
public List<DossierAttributeConfig> setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody List<DossierAttributeConfig> dossierAttributesConfig) {
return dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, dossierAttributesConfig);
public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody DossierAttribute dossierAttribute) {
var dossier = dossierService.getDossierById(dossierId);
var dossierAttributes = dossierAttributePersistenceService.getDossierAttributes(dossierId);
var config = dossierAttributeConfigPersistenceService.getDossierAttributes(dossier.getDossierTemplateId());
if (config.stream().map(DossierAttributeConfig::getId).noneMatch(id -> id.equals(dossierAttribute.getId().getDossierAttributeConfigId()))) {
throw new ConflictException("Dossier attribute configuration does not exist.");
}
if (dossierAttributes.stream().anyMatch(d -> d.getId().equals(dossierAttribute.getId()))) {
dossierAttributePersistenceService.updateDossierAttribute(dossierId, dossierAttribute.getId().getDossierAttributeConfigId(), dossierAttribute.getValue());
} else {
dossierAttributePersistenceService.insertDossierAttribute(dossierId, dossierAttribute.getId().getDossierAttributeConfigId(), dossierAttribute.getValue());
}
return dossierAttributePersistenceService.findOne(dossierId, dossierAttribute.getId().getDossierAttributeConfigId());
}
@Override
public void deleteDossierAttribute(@PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId) {
dossierAttributeConfigPersistenceService.deleteDossierAttribute(dossierAttributeId);
@Transactional
public List<DossierAttribute> getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
return dossierAttributePersistenceService.getDossierAttributes(dossierId);
}
@Override
public void deleteDossierAttributes(@RequestBody List<String> dossierAttributeIds) {
dossierAttributeConfigPersistenceService.deleteDossierAttributes(dossierAttributeIds);
}
@Override
public List<DossierAttributeConfig> getDossierAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId);
public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) {
dossierAttributePersistenceService.deleteDossierAttribute(dossierId, dossierAttributeId);
}
}

View File

@ -0,0 +1,58 @@
package com.iqser.red.service.file.management.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;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.FileAttributeConfig;
import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Slf4j
@RestController
@RequiredArgsConstructor
public class FileAttributesConfigController implements FileAttributesConfigResource {
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
@Override
public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributeConfig) {
return fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, fileAttributeConfig);
}
@Override
public FileAttributesGeneralConfiguration setFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody FileAttributesGeneralConfiguration fileAttributesConfig) {
return fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, fileAttributesConfig);
}
@Override
public FileAttributesGeneralConfiguration getFileAttributesGeneralConfiguration(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplateId);
}
@Override
public List<FileAttributeConfig> setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List<FileAttributeConfig> fileAttributesConfig) {
return fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId, fileAttributesConfig);
}
@Override
public void deleteFileAttribute(@PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId) {
fileAttributeConfigPersistenceService.deleteFileAttribute(fileAttributeId);
}
@Override
public void deleteFileAttributes(@RequestBody List<String> fileAttributeIds) {
fileAttributeConfigPersistenceService.deleteFileAttributes(fileAttributeIds);
}
@Override
public List<FileAttributeConfig> getFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId);
}
}

View File

@ -1,58 +1,153 @@
package com.iqser.red.service.file.management.v1.server.controller;
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.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;
import com.iqser.red.service.persistence.service.v1.api.model.ImportCsvRequest;
import com.iqser.red.service.persistence.service.v1.api.model.ImportCsvResponse;
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 com.iqser.red.service.persistence.service.v1.api.model.data.dossier.*;
import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesResource;
import com.opencsv.CSVParser;
import com.opencsv.CSVParserBuilder;
import com.opencsv.CSVReader;
import com.opencsv.CSVReaderBuilder;
import com.opencsv.exceptions.CsvValidationException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@RestController
@RequiredArgsConstructor
public class FileAttributesController implements FileAttributesResource {
private final FileStatusService fileStatusService;
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
private final FileStatusPersistenceService fileStatusPersistenceService;
private final DossierService dossierService;
@Override
public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributeConfig) {
return fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, fileAttributeConfig);
public ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody ImportCsvRequest importCsvRequest) {
Dossier dossier = dossierService.getDossierById(dossierId);
FileAttributesGeneralConfiguration generalConfiguration = fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossier.getDossierTemplateId());
List<FileAttributeConfig> configuration = fileAttributeConfigPersistenceService.getFileAttributes(dossier.getDossierTemplateId());
Map<String, File> fileStatusByFilename = fileStatusService.getDossierStatus(dossierId)
.stream()
.filter(f -> !f.getStatus().equals(FileStatus.DELETED))
.collect(Collectors.toMap(File::getFilename, Function.identity()));
List<List<String>> rows = getCsvRecords(importCsvRequest.getCsvFile(), generalConfiguration.getDelimiter());
Iterator<List<String>> rowIterator = rows.iterator();
Map<String, Integer> attributeIdToColumnMapping = new HashMap<>();
int filenameMappingColumn = -1;
List<String> headerRow = rowIterator.next();
for (int i = 0; i < headerRow.size(); i++) {
if (headerRow.get(i).equals(generalConfiguration.getFilenameMappingColumnHeaderName())) {
filenameMappingColumn = i;
} else {
for (FileAttributeConfig fileAttributeConfig : configuration) {
if (headerRow.get(i).equals(fileAttributeConfig.getCsvColumnHeader())) {
attributeIdToColumnMapping.put(fileAttributeConfig.getId(), i);
}
}
}
}
if (filenameMappingColumn == -1) {
throw new BadRequestException("Filename mapping column could not be found!");
}
Set<String> affectedFileIds = new HashSet<>();
while (rowIterator.hasNext()) {
List<String> row = rowIterator.next();
String fileStatusMappingColumn = row.get(filenameMappingColumn);
if (fileStatusMappingColumn == null) {
continue;
}
// TODO this is a primitive solution we need smart name matching
if (!fileStatusMappingColumn.toLowerCase().endsWith(".pdf")) {
fileStatusMappingColumn = fileStatusMappingColumn + ".pdf";
}
if (!fileStatusByFilename.containsKey(fileStatusMappingColumn.trim())) {
continue;
}
Map<String, String> attributeIdToValue = new HashMap<>();
for (Map.Entry<String, Integer> entry : attributeIdToColumnMapping.entrySet()) {
attributeIdToValue.put(entry.getKey(), row.get(entry.getValue()));
}
String fileId = fileStatusByFilename.get(fileStatusMappingColumn.trim()).getId();
fileStatusPersistenceService.setFileAttributes(fileId, convertFileAttributes(dossierId, fileId, attributeIdToValue));
affectedFileIds.add(fileId);
}
return new ImportCsvResponse(affectedFileIds, attributeIdToColumnMapping.keySet());
}
@Override
public FileAttributesGeneralConfiguration setFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@RequestBody FileAttributesGeneralConfiguration fileAttributesConfig) {
return fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, fileAttributesConfig);
public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(FILE_ID) String fileId, @RequestBody Map<String, String> fileAttributesMap) {
fileStatusPersistenceService.setFileAttributes(fileId, convertFileAttributes(dossierId, fileId, fileAttributesMap));
}
@Override
public FileAttributesGeneralConfiguration getFileAttributesGeneralConfiguration(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplateId);
private List<FileAttribute> convertFileAttributes(String dossierId, String fileId, Map<String, String> fileAttributesMap) {
var dossier = dossierService.getDossierById(dossierId);
var file = fileStatusService.getStatus(fileId);
List<FileAttributeConfig> configuration = fileAttributeConfigPersistenceService.getFileAttributes(dossier.getDossierTemplateId());
return fileAttributesMap.entrySet().stream().map(entry -> {
var fa = new FileAttribute();
fa.setFile(file);
fa.setFileAttributeConfig(configuration.stream().filter(c -> c.getId().equals(entry.getKey())).findAny().orElseThrow(() ->
new BadRequestException("Invalid File Attribute Id")));
fa.setValue(entry.getValue());
return fa;
}).collect(Collectors.toList());
}
@Override
public List<FileAttributeConfig> setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List<FileAttributeConfig> fileAttributesConfig) {
return fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId, fileAttributesConfig);
private List<List<String>> getCsvRecords(byte[] csv, String delimiter) {
CSVParser parser = new CSVParserBuilder().withSeparator(delimiter.charAt(0)).build();
List<List<String>> records = new ArrayList<>();
try (CSVReader csvReader = new CSVReaderBuilder(new BufferedReader(new InputStreamReader(new ByteArrayInputStream(csv))))
.withCSVParser(parser)
.build()) {
String[] values = null;
while ((values = csvReader.readNext()) != null) {
records.add(Arrays.asList(values));
}
} catch (IOException | CsvValidationException e) {
e.printStackTrace();
}
return records;
}
@Override
public void deleteFileAttribute(@PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId) {
fileAttributeConfigPersistenceService.deleteFileAttribute(fileAttributeId);
}
@Override
public void deleteFileAttributes(@RequestBody List<String> fileAttributeIds) {
fileAttributeConfigPersistenceService.deleteFileAttributes(fileAttributeIds);
}
@Override
public List<FileAttributeConfig> getFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId);
}
}

View File

@ -2,7 +2,7 @@ package com.iqser.red.service.file.management.v1.server.controller;
import com.iqser.red.service.file.management.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.FileNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.ReportTemplateDownload;
import com.iqser.red.service.persistence.service.v1.api.model.ReportTemplateUploadRequest;
@ -70,7 +70,7 @@ public class ReportTemplateController implements ReportTemplateResource {
byte[] file = IOUtils.toByteArray(storageService.getObject(storageId).getInputStream());
return ReportTemplateDownload.builder().file(file).build();
} catch (StorageObjectDoesNotExist | IOException e) {
throw new FileNotFoundException("Template does not exist");
throw new NotFoundException("Template does not exist");
}
}

View File

@ -2,6 +2,7 @@ package com.iqser.red.service.file.management.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.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;
import com.iqser.red.service.persistence.service.v1.api.resources.RulesResource;
@ -45,7 +46,11 @@ public class RulesController implements RulesResource {
@Override
public long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) {
return rulesPersistenceService.getRules(dossierTemplateId).getVersion();
try {
return rulesPersistenceService.getRules(dossierTemplateId).getVersion();
} catch (NotFoundException e) {
return 0;
}
}
}

View File

@ -11,7 +11,7 @@ import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronRedactionRequ
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.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileResult;
@ -104,13 +104,13 @@ public class UploadController implements UploadResource {
var fileStatus = fileStatusService.getStatus(fileId);
if (fileStatus.getDeleted() != null) {
throw new FileNotFoundException("File is deleted.");
throw new NotFoundException("File is deleted.");
}
try {
return new BinaryFileResult(fileManagementStorageService.getStoredObjectBytes(dossierId, fileId, FileType.ORIGIN), fileStatus.getFilename());
} catch (StorageObjectDoesNotExist e) {
throw new FileNotFoundException(e.getMessage());
throw new NotFoundException(e.getMessage());
}
}

View File

@ -1,24 +1,22 @@
package com.iqser.red.service.file.management.v1.server.service;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.InputStreamResource;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;
import com.iqser.red.service.persistence.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.file.management.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;
import com.iqser.red.service.redaction.v1.model.SectionGrid;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import com.iqser.red.storage.commons.service.StorageService;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.InputStreamResource;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.InputStream;
@Slf4j
@Service
@ -62,7 +60,7 @@ public class FileManagementStorageService {
inputStreamResource = storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.REDACTION_LOG));
} catch (StorageObjectDoesNotExist e) {
log.debug("Text not available.");
throw new FileNotFoundException("RedactionLog does not exist");
throw new NotFoundException("RedactionLog does not exist");
}
try {
@ -73,7 +71,6 @@ public class FileManagementStorageService {
}
public SectionGrid getSectionGrid(String dossierId, String fileId) {
var sectionGrid = storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.SECTION_GRID));

View File

@ -6,7 +6,7 @@ import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeReque
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.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.service.v1.api.model.FileType;
@ -91,7 +91,7 @@ public class FileService {
try {
return fileStatusService.getStatus(fileId);
} catch (FileNotFoundException e) {
} catch (NotFoundException e) {
// it's a new File.
return null;
}

View File

@ -15,9 +15,11 @@ import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.Hibernate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Set;
@ -84,6 +86,7 @@ public class FileStatusService {
}
@Transactional
public void createStatus(String dossierId, String fileId, String uploader, String filename, int priority) {
fileStatusPersistenceService.createStatus(dossierId, fileId, filename, uploader);
@ -91,10 +94,12 @@ public class FileStatusService {
}
@Transactional
public void setStatusReprocess(String dossierId, String fileId, int priority) {
setStatusReprocess(dossierId, fileId, priority, Sets.newHashSet());
}
@Transactional
public void setStatusReprocess(String dossierId, String fileId, int priority, Set<Integer> sectionsToReanalyse) {
log.info("Reprocessing file: {} from dossier {}", fileId, dossierId);
@ -125,6 +130,7 @@ public class FileStatusService {
}
@Transactional
public void setStatusFullReprocess(String dossierId, String fileId, int priority) {
File fileStatus = fileStatusPersistenceService.getStatus(fileId);
@ -195,7 +201,8 @@ public class FileStatusService {
}
private void addToAnalysisQueue(String dossierId, String fileId, int priority, Set<Integer> sectionsToReanalyse) {
@Transactional
protected void addToAnalysisQueue(String dossierId, String fileId, int priority, Set<Integer> sectionsToReanalyse) {
var dossier = dossierPersistenceService.getAndValidateDossier(dossierId);
var fileStatus = fileStatusPersistenceService.getStatus(fileId);

View File

@ -6,7 +6,7 @@ import com.iqser.red.service.file.management.v1.server.service.RedactionLogServi
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.exception.NotFoundException;
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;
@ -237,7 +237,7 @@ public class DownloadPreparationService {
}
try {
return redactionLogService.getRedactionLog(dossierId, fileId, true);
} catch (FileNotFoundException e) {
} catch (NotFoundException e) {
return null;
}

View File

@ -27,3 +27,5 @@ spring:
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
generate-ddl: true
open-in-view: true

View File

@ -1,91 +0,0 @@
package com.iqser.red.service.file.management.v1.server.controller;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@WebMvcTest(value = DossierController.class)
public class DossierControllerTest {
//
// private static final String SERVICE_PATH = "/" + SERVICE_NAME;
//
// @Autowired
// private ObjectMapper mapper;
//
// @Autowired
// private MockMvc mockMvc;
//
// @MockBean(name = "mainCassandraSession")
// private CassandraSession cassandraSession;
//
// @MockBean(name = "migrationCassandraSession")
// private CassandraSession migrationCassandraSession;
//
// @MockBean
// private Migrator migrator;
//
// @MockBean
// private FileStatusPersistenceService fileStatusPersistenceService;
//
// @MockBean
// private MessagingConfiguration messagingConfiguration;
//
// @MockBean
// private CleanupDownloadSchedulerConfiguration cleanupDownloadSchedulerConfiguration;
//
// @MockBean
// private DossierPersistenceService dossierPersistenceService;
//
// @MockBean
// private FileStatusService fileStatusService;
//
// @MockBean
// private DossierService dossierService;
//
// @MockBean
// private FileService fileService;
//
// @MockBean
// private ManualRedactionService manualRedactionService;
//
// @Test
// public void testAddDossier() throws Exception {
//
// String userId = "userId";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2", "templateId3"));
// DossierRequest dossierRequest = new DossierRequest("Dossier Name",
// "Dossier Description",
// userId,
// "123",
// Collections.singleton(userId),
// Collections.singleton(userId),
// Sets.newHashSet(),
// Sets.newHashSet(),
// OffsetDateTime.now(),
// templateIds,
// true);
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.post(SERVICE_PATH + REST_PATH)
// .content(mapper.writeValueAsString(dossierRequest))
// .contentType(MediaType.APPLICATION_JSON)
// .servletPath(SERVICE_PATH);
// Dossier expected = Dossier.builder()
// .dossierName(dossierRequest.getDossierName())
// .description(dossierRequest.getDescription())
// .reportTemplateIds(templateIds)
// .build();
// when(dossierService.addDossier(dossierRequest)).thenReturn(expected);
// ResultActions requestResult = mockMvc.perform(request);
// requestResult
// .andExpect(status().isOk())
// .andExpect(content().contentType(MediaType.APPLICATION_JSON))
// .andExpect(result -> {
// Dossier dossier = mapper.readValue(result.getResponse().getContentAsString(), Dossier.class);
// assertThat(dossier.getDescription()).isEqualTo(dossierRequest.getDescription());
// assertThat(dossier.getDossierName()).isEqualTo(dossierRequest.getDossierName());
// assertThat(dossier.getReportTemplateIds()).isEqualTo(dossierRequest.getReportTemplateIds());
// });
//
// }
}

View File

@ -1,109 +0,0 @@
package com.iqser.red.service.file.management.v1.server.controller;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@WebMvcTest(value = FileStatusController.class)
public class FileStatusControllerTest {
//
// private static final String SERVICE_PATH = "/" + SERVICE_NAME;
//
// @Autowired
// private ObjectMapper mapper;
//
// @Autowired
// private MockMvc mockMvc;
//
// @MockBean(name = "mainCassandraSession")
// private CassandraSession cassandraSession;
//
// @MockBean(name = "migrationCassandraSession")
// private CassandraSession migrationCassandraSession;
//
// @MockBean
// private Migrator migrator;
//
// @MockBean
// private FileStatusPersistenceService fileStatusPersistenceService;
//
// @MockBean
// private MessagingConfiguration messagingConfiguration;
//
// @MockBean
// private CleanupDownloadSchedulerConfiguration cleanupDownloadSchedulerConfiguration;
//
// @MockBean
// private DossierPersistenceService dossierPersistenceService;
//
// @MockBean
// private FileStatusService fileStatusService;
//
// @MockBean
// private DossierService dossierService;
//
// @Autowired
// private ObjectMapper objectMapper;
//
// @MockBean
// private ExcludeFromAnalysisService excludeFromAnalysisService;
//
// @Test
// public void testFileStatusResponse() throws Exception {
//
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get(SERVICE_PATH + "/status/dossier")
// .servletPath(SERVICE_PATH);
// OffsetDateTime now = OffsetDateTime.now().withNano(0);
// File expected = File.builder()
// .dossierId("dossier")
// .fileId("file")
// .filename("filename")
// .status(Status.UNASSIGNED)
// .numberOfPages(100)
// .added(now)
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer(null)
// .build();
// when(fileStatusService.getDossierStatus("dossier")).thenReturn(Collections.singletonList(expected));
// ResultActions requestResult = mockMvc.perform(request);
// requestResult.andExpect(status().isOk())
// .andExpect(content().contentType(MediaType.APPLICATION_JSON))
// .andExpect(result -> {
// List<File> dossierStatus = mapper.readValue(result.getResponse()
// .getContentAsString(), new TypeReference<List<File>>() {
// });
// assertThat(dossierStatus).containsOnly(expected);
// });
//
// }
//
//
// @Test
// public void testFileStatus404() throws Exception {
//
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get(SERVICE_PATH + STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, "p1", "f1")
// .servletPath(SERVICE_PATH);
// when(fileStatusService.getStatus("p1", "f1")).thenThrow(new FileNotFoundException(String.format(FILE_STATUS_NOT_FOUND_MESSAGE,
// "p1", "f1")));
// ResultActions requestResult = mockMvc.perform(request);
// requestResult.andExpect(status().isNotFound());
//
// }
//
//
// @Test
// public void testSetCurrentReviewer() throws Exception {
//
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.post(SERVICE_PATH + STATUS_PATH + "/reviewer" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, "p1", "f1")
// .content(objectMapper.writeValueAsString(new CurrentFileReviewerRequest("asass")))
// .contentType(MediaType.APPLICATION_JSON)
// .servletPath(SERVICE_PATH);
// ResultActions requestResult = mockMvc.perform(request);
// requestResult.andExpect(status().isOk());
//
// }
}

View File

@ -1,63 +0,0 @@
package com.iqser.red.service.file.management.v1.server.controller;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@WebMvcTest(value = LicenseReportController.class)
public class LicenseReportControllerTest {
// private static final String SERVICE_PATH = "/" + SERVICE_NAME;
//
// @Autowired
// private MockMvc mockMvc;
//
// @Autowired
// private ObjectMapper mapper;
//
// @MockBean
// private LicenseReportService licenseReportService;
//
// @MockBean(name = "mainCassandraSession")
// private CassandraSession cassandraSession;
//
// @MockBean(name = "migrationCassandraSession")
// private CassandraSession migrationCassandraSession;
//
// @MockBean
// private Migrator migrator;
//
// @MockBean
// private FileStatusService fileStatusService;
//
// @MockBean
// private CleanupDownloadSchedulerConfiguration cleanupDownloadSchedulerConfiguration;
//
//
// @Test
// public void testFileStatusResponse() throws Exception {
//
// LicenseReportRequest licenseReportRequest = new LicenseReportRequest();
// String json = mapper.writeValueAsString(licenseReportRequest);
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.post(SERVICE_PATH + "/report/license")
// .param("offset", "0")
// .param("limit", "20")
// .content(json)
// .contentType(MediaType.APPLICATION_JSON)
// .servletPath(SERVICE_PATH);
// LicenseReport licenseReport = new LicenseReport();
// licenseReport.setRequestId("Some Id!");
// when(licenseReportService.getLicenseReport(mapper.readValue(json, LicenseReportRequest.class), 0, 20)).thenReturn(licenseReport);
// ResultActions requestResult = mockMvc.perform(request);
// requestResult.andExpect(status().isOk())
// .andExpect(content().contentType(MediaType.APPLICATION_JSON))
// .andExpect(result -> {
// LicenseReport actual = mapper.readValue(result.getResponse()
// .getContentAsString(), LicenseReport.class);
// assertThat(actual.getRequestId()).isEqualTo(licenseReport.getRequestId());
// });
//
// }
}

View File

@ -1,85 +0,0 @@
package com.iqser.red.service.file.management.v1.server.controller;
import org.junit.runner.RunWith;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@WebMvcTest(value = ReanalysisController.class)
public class ReanalysisControllerTest {
//
// private static final String SERVICE_PATH = "/" + SERVICE_NAME;
//
// @Autowired
// private ObjectMapper mapper;
//
// @Autowired
// private MockMvc mockMvc;
//
// @MockBean
// private FileStatusService fileStatusService;
//
// @MockBean(name = "mainCassandraSession")
// private CassandraSession cassandraSession;
//
// @MockBean(name = "migrationCassandraSession")
// private CassandraSession migrationCassandraSession;
//
// @MockBean
// private Migrator migrator;
//
// @MockBean
// private CleanupDownloadSchedulerConfiguration cleanupDownloadSchedulerConfiguration;
//
// @MockBean
// private DossierPersistenceService dossierPersistenceService;
//
// @MockBean
// private RulesClient rulesClient;
//
// @MockBean
// private DictionaryClient dictionaryClient;
//
// @MockBean
// private FileManagementStorageService fileManagementStorageService;
//
// @MockBean
// private PDFTronRedactionClient pdfTronRedactionClient;
//
// @MockBean
// private RabbitTemplate rabbitTemplate;
//
// @MockBean
// private IndexingService indexingService;
//
//
// @Test
// public void testReanalysisController() throws Exception {
//
// String dossierId = "p1";
// MockHttpServletRequestBuilder request = MockMvcRequestBuilders.post(SERVICE_PATH + REANALYZE_PATH + DOSSIER_ID_PATH_PARAM, dossierId)
// .servletPath(SERVICE_PATH);
// when(dossierPersistenceService.getAndValidateDossier(dossierId)).thenReturn(Dossier.builder()
// .dossierName("my dossier")
// .status(DossierStatus.ACTIVE)
// .build());
// mockMvc.perform(request).andExpect(status().isNoContent());
// String fileId = "f1";
// request = MockMvcRequestBuilders.post(SERVICE_PATH + REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, dossierId, fileId)
// .content("[]")
// .contentType(MediaType.APPLICATION_JSON)
// .servletPath(SERVICE_PATH);
// when(fileStatusService.getDossierStatus(Mockito.any())).thenReturn(Lists.newArrayList(File.builder()
// .fileId(fileId)
// .status(Status.UNPROCESSED)
// .build()));
// mockMvc.perform(request).andExpect(status().isNoContent());
// request = MockMvcRequestBuilders.post(SERVICE_PATH + REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, dossierId, fileId)
// .content("[]")
// .contentType(MediaType.APPLICATION_JSON)
// .servletPath(SERVICE_PATH);
// when(dossierPersistenceService.getAndValidateDossier(dossierId)).thenThrow(new DossierNotFoundException("Exception"));
// mockMvc.perform(request).andExpect(status().isNotFound());
// }
}

View File

@ -1,49 +1,60 @@
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.RedactionClient;
import com.iqser.red.service.file.management.v1.server.client.SearchClient;
import com.iqser.red.service.persistence.management.v1.processor.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.context.annotation.Import;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.*;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Import(AbstractFileManagementServerServiceTest.TestConfiguration.class)
public abstract class AbstractFileManagementServerServiceTest extends AbstractCassandraTest {
//
// @Autowired
// private StorageService storageService;
//
// @MockBean
// protected RabbitTemplate rabbitTemplate;
//
// @MockBean
// protected DossierAttributesConfigClient dossierAttributesConfigClient;
//
// @MockBean
// protected FileAttributesConfigClient fileAttributesConfigClient;
//
// @MockBean
// protected PDFTronRedactionClient pdfTronRedactionClient;
//
//
// @Configuration
// @EnableAutoConfiguration(exclude = {StorageAutoConfiguration.class, RabbitAutoConfiguration.class})
// @ComponentScan("com.iqser.red.service.file.management.v1.server")
// public static class TestConfiguration {
//
// @Bean
// @Primary
// public StorageService inmemoryStorage() {
// return new FileSystemBackedStorageService();
// }
//
// }
//
// @After
// public void cleanupStorage() {
// ((FileSystemBackedStorageService) this.storageService).clearStorage();
// }
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public abstract class AbstractFileManagementServerServiceTest {
@Autowired
private StorageService storageService;
@MockBean
protected RabbitTemplate rabbitTemplate;
@MockBean
protected SearchClient searchClient;
@MockBean
protected RedactionClient redactionClient;
@MockBean
protected PDFTronRedactionClient pdfTronRedactionClient;
@Configuration
@EnableAutoConfiguration(exclude = {StorageAutoConfiguration.class, RabbitAutoConfiguration.class})
@ComponentScan("com.iqser.red.service.file.management.v1.server")
public static class TestConfiguration {
@Bean
@Primary
public StorageService inmemoryStorage() {
return new FileSystemBackedStorageService();
}
}
@After
public void cleanupStorage() {
((FileSystemBackedStorageService) this.storageService).clearStorage();
}
}

View File

@ -1,147 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
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.DossierAttribute;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributePersistenceService;
import com.iqser.red.service.file.management.v1.server.controller.DossierAttributesController;
import com.iqser.red.service.file.management.v1.server.controller.DossierController;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DossierAttributeConfig;
import org.assertj.core.util.Sets;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
public class DossierAttributesTest extends AbstractFileManagementServerServiceTest {
//
// @Autowired
// private DossierAttributesController dossierAttributesController;
//
// @Autowired
// private DossierAttributePersistenceService dossierAttributePersistenceService;
//
// @Autowired
// private DossierController dossierController;
//
//
//
// @Test
// public void testSetDossierAttributes() {
// DossierAttributesConfig dossierAttributesConfig = new DossierAttributesConfig();
//
// DossierAttributeConfig dossierAttributeConfig = DossierAttributeConfig.builder().id("dossierAttributeId").label("label").editable(true).type(DossierAttributeConfig.DossierAttributeType.TEXT).placeholder("placeholder").build();
// List<DossierAttributeConfig> dossierAttributesConfigList = new ArrayList<>();
// dossierAttributesConfigList.add(dossierAttributeConfig);
//
// dossierAttributesConfig.setDossierAttributeConfigs(dossierAttributesConfigList);
//
// when(dossierAttributesConfigClient.getDossierAttributes("ruleSetId")).thenReturn(dossierAttributesConfig);
//
// Dossier project = dossierController.addDossier((new DossierRequest("p2", "pd1", "user", "ruleSetId",
// Collections.singleton("u1"), Collections.singleton("u1"), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime.now(), null, true)));
//
// DossierAttribute dossierAttribute = new DossierAttribute("dossierAttributeId", "dossierAttributeValue");
//
// DossierAttributes dossierAttributes = new DossierAttributes();
// dossierAttributes.setDossierAttributeList(Arrays.asList(dossierAttribute));
// DossierAttributes attributes = dossierAttributesController.setDossierAttributes(project.getDossierId(), dossierAttributes);
//
// List<DossierAttribute> dossierAttributeList = dossierAttributePersistenceService.getDossierAttributes(project.getDossierId()).getDossierAttributeList();
// assertThat(dossierAttributeList.get(0).getDossierAttributeId()).isEqualTo("dossierAttributeId");
// assertThat(dossierAttributeList.size()).isEqualTo(1);
//
// assertThat(attributes.getDossierAttributeList().get(0).getDossierAttributeId()).isEqualTo("dossierAttributeId");
// assertThat(attributes.getDossierAttributeList().size()).isEqualTo(1);
//
//
// DossierAttributeConfig dossierAttributeConfig2 = DossierAttributeConfig.builder().id("dossierAttributeId2").label("label").editable(true).type(DossierAttributeConfig.DossierAttributeType.TEXT).placeholder("placeholder").build();
// List<DossierAttributeConfig> dossierAttributesConfigList2 = new ArrayList<>();
// dossierAttributesConfigList2.add(dossierAttributeConfig2);
// dossierAttributesConfig.setDossierAttributeConfigs(dossierAttributesConfigList2);
// when(dossierAttributesConfigClient.getDossierAttributes("ruleSetId")).thenReturn(dossierAttributesConfig);
//
// DossierAttribute dossierAttribute2 = new DossierAttribute("dossierAttributeId2", "dossierAttributeValue2");
// DossierAttributes dossierAttributes2 = new DossierAttributes();
// dossierAttributes2.setDossierAttributeList(Arrays.asList(dossierAttribute2));
// DossierAttributes attributes2 = dossierAttributesController.setDossierAttributes(project.getDossierId(), dossierAttributes2);
//
// assertThat(attributes2.getDossierAttributeList().get(0).getDossierAttributeId()).isEqualTo("dossierAttributeId2");
// assertThat(attributes2.getDossierAttributeList().size()).isEqualTo(1);
//
//
// }
//
// @Test
// public void testAddOrUpdateDossierAttribute() {
// DossierAttributesConfig dossierAttributesConfig = new DossierAttributesConfig();
//
// DossierAttributeConfig dossierAttributeConfig = DossierAttributeConfig.builder().id("dossierAttributeId").label("label").editable(true).type(DossierAttributeConfig.DossierAttributeType.TEXT).placeholder("placeholder").build();
// List<DossierAttributeConfig> dossierAttributesConfigList = new ArrayList<>();
// dossierAttributesConfigList.add(dossierAttributeConfig);
//
// dossierAttributesConfig.setDossierAttributeConfigs(dossierAttributesConfigList);
//
// when(dossierAttributesConfigClient.getDossierAttributes("ruleSetId")).thenReturn(dossierAttributesConfig);
//
// Dossier project = dossierController.addDossier((new DossierRequest("p2", "pd1", "user", "ruleSetId",
// Collections.singleton("u1"), Collections.singleton("u1"), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime.now(), null, true)));
//
// DossierAttribute dossierAttribute = new DossierAttribute("dossierAttributeId", "dossierAttributeValue");
//
// DossierAttributes dossierAttributes = dossierAttributesController.addOrUpdateDossierAttribute(project.getDossierId(), dossierAttribute);
//
// assertThat(dossierAttributes.getDossierAttributeList().get(0).getDossierAttributeId()).isEqualTo("dossierAttributeId");
// assertThat(dossierAttributes.getDossierAttributeList().size()).isEqualTo(1);
//
//
// DossierAttributeConfig dossierAttributeConfigUpdate = DossierAttributeConfig.builder().id("dossierAttributeIdUpdate").label("label").editable(true).type(DossierAttributeConfig.DossierAttributeType.TEXT).placeholder("placeholder").build();
// dossierAttributesConfigList.add(dossierAttributeConfigUpdate);
//
// dossierAttributesConfig.setDossierAttributeConfigs(dossierAttributesConfigList);
//
// when(dossierAttributesConfigClient.getDossierAttributes("ruleSetId")).thenReturn(dossierAttributesConfig);
//
// DossierAttribute dossierAttributeUpdate = new DossierAttribute("dossierAttributeIdUpdate", "dossierAttributeValueUpdate");
// DossierAttributes dossierAttributesUpdate = dossierAttributesController.addOrUpdateDossierAttribute(project.getDossierId(), dossierAttributeUpdate);
//
// assertThat(dossierAttributesUpdate.getDossierAttributeList().get(1).getDossierAttributeId()).isEqualTo(dossierAttributeUpdate.getDossierAttributeId());
// assertThat(dossierAttributesUpdate.getDossierAttributeList().get(1).getValue()).isEqualTo(dossierAttributeUpdate.getValue());
// assertThat(dossierAttributesUpdate.getDossierAttributeList().size()).isEqualTo(2);
// }
//
// @Test
// public void deleteDossierAttributes() {
// DossierAttributesConfig dossierAttributesConfig = new DossierAttributesConfig();
//
// DossierAttributeConfig dossierAttributeConfig = DossierAttributeConfig.builder().id("dossierAttributeId").label("label").editable(true).type(DossierAttributeConfig.DossierAttributeType.TEXT).placeholder("placeholder").build();
// List<DossierAttributeConfig> dossierAttributesConfigList = new ArrayList<>();
// dossierAttributesConfigList.add(dossierAttributeConfig);
//
// dossierAttributesConfig.setDossierAttributeConfigs(dossierAttributesConfigList);
//
// when(dossierAttributesConfigClient.getDossierAttributes("ruleSetId")).thenReturn(dossierAttributesConfig);
//
// Dossier project = dossierController.addDossier((new DossierRequest("p2", "pd1", "user", "ruleSetId",
// Collections.singleton("u1"), Collections.singleton("u1"), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime.now(), null, true)));
//
// DossierAttribute dossierAttribute = new DossierAttribute("dossierAttributeId", "dossierAttributeValue");
//
// DossierAttributes dossierAttributes = new DossierAttributes();
// dossierAttributes.setDossierAttributeList(Arrays.asList(dossierAttribute));
// DossierAttributes attributes = dossierAttributesController.setDossierAttributes(project.getDossierId(), dossierAttributes);
//
// dossierAttributesController.deleteDossierAttribute(project.getDossierId(), dossierAttribute.getDossierAttributeId());
//
// DossierAttributes attributes1 = dossierAttributesController.getDossierAttributes(project.getDossierId());
//
// assertThat(attributes1.getDossierAttributeList()).isEmpty();
// }
}

View File

@ -1,232 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.amazonaws.services.s3.transfer.model.UploadResult;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.commons.persistence.cassandra.CassandraSession;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import com.iqser.red.service.file.management.v1.server.controller.DossierController;
import com.iqser.red.service.file.management.v1.server.controller.UploadController;
import com.iqser.red.service.file.management.v1.server.service.FileStatusService;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeResponse;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.Dossier;
import org.assertj.core.util.Sets;
import org.hibernate.engine.spi.Status;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.OffsetDateTime;
import java.util.*;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
public class DossierDeleteTest extends AbstractFileManagementServerServiceTest {
//
// @Autowired
// private DossierController dossierController;
//
// @Autowired
// private UploadController uploadController;
//
// @Autowired
// private FileStatusPersistenceService fileStatusPersistenceService;
//
// @Autowired
// private FileStatusService fileStatusService;
//
// @Autowired
// private CassandraSession cassandraSession;
//
// @Autowired
// private ObjectMapper objectMapper;
//
// @Before
// public void before() {
// PdfTronOptimizeResponse response = new PdfTronOptimizeResponse();
// response.setDocument(new byte[]{1, 2, 3, 4, 5});
// when(pdfTronRedactionClient.optimize(any())).thenReturn(response);
// }
//
// @Test
// public void testUploadForDossierAndCleanup() {
//
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
// Dossier dossier = dossierController.addDossier(new DossierRequest("p2", "pd1", u1, "123", Collections.singleton(u1),
// Collections.singleton(u1),
// Sets.newHashSet(),
// Sets.newHashSet(),
// OffsetDateTime
// .now(),
// templateIds,
// true));
// UploadResult uploadResult = uploadController.upload(BinaryFileRequest.builder()
// .data(new byte[]{1, 2, 3, 4, 5})
// .filename("f1")
// .dossierId(dossier.getDossierId())
// .build());
//
// assertThat(fileStatusService.getDossierStatus(dossier.getDossierId())).hasSize(1);
// assertThat(fileStatusPersistenceService.getStatus(dossier.getDossierId(), uploadResult.getFileId())).isNotNull();
//
// dossierController.delete(dossier.getDossierId());
//
// assertThat(fileStatusService.getDossierStatus(dossier.getDossierId())).hasSize(1);
// assertThat(Status.DELETED).isEqualTo(fileStatusService.getDossierStatus(dossier.getDossierId())
// .get(0)
// .getStatus());
//
//
// }
//
// @Test
// public void testRecreateDossier() {
//
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
//
// Dossier dossier = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
// dossierController.delete(dossier.getDossierId());
//
// Dossier dossierRecreated = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
// assertThat(dossierRecreated).isNotNull();
// }
//
// @Test
// public void testGetSoftDeletedDossiers() {
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
//
// Dossier dossier = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
// String dossierId = dossier.getDossierId();
// dossierController.delete(dossierId);
//
// assertThat(dossierController.getSoftDeletedDossiers().size()).isEqualTo(1);
// assertThat(dossierController.getSoftDeletedDossiers().get(0).getDossierName()).isEqualTo("p1");
// assertThat(dossierController.getSoftDeletedDossiers().get(0).getDossierId()).isEqualTo(dossierId);
//
// }
//
//
// @Test
// public void testHardDeleteDossiers() {
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
// Dossier dossier = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
// String dossierId = dossier.getDossierId();
// dossierController.delete(dossierId);
//
//
// String u2 = "u2";
// Set<String> templateIds2 = new HashSet<>(Arrays.asList("templateId3", "templateId4"));
// Dossier dossier2 = dossierController.addDossier(new DossierRequest("p2", "pd2", u2, "1234",
// Collections.singleton(u2), Collections.singleton(u2), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds2, true));
//
// String dossierId2 = dossier2.getDossierId();
// dossierController.delete(dossierId2);
//
// assertThat(dossierController.getSoftDeletedDossiers().size()).isEqualTo(2);
//
// Set<String> dossierIdsToHardDelete = new HashSet<>();
// dossierIdsToHardDelete.add(dossierId);
// dossierIdsToHardDelete.add(dossierId2);
// dossierController.hardDeleteDossiers(dossierIdsToHardDelete);
//
// assertThat(dossierController.getSoftDeletedDossiers().size()).isEqualTo(0);
// }
//
// @Test
// public void testUndeleteDossiers() {
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
// Dossier dossier = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
// String dossierId = dossier.getDossierId();
// dossierController.delete(dossierId);
//
//
// String u2 = "u2";
// Set<String> templateIds2 = new HashSet<>(Arrays.asList("templateId3", "templateId4"));
// Dossier dossier2 = dossierController.addDossier(new DossierRequest("p2", "pd2", u2, "1234",
// Collections.singleton(u2), Collections.singleton(u2), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds2, true));
//
// String dossierId2 = dossier2.getDossierId();
// dossierController.delete(dossierId2);
//
// assertThat(dossierController.getSoftDeletedDossiers().size()).isEqualTo(2);
//
// Set<String> dossierIdsToUndelete = new HashSet<>();
// dossierIdsToUndelete.add(dossierId);
// dossierIdsToUndelete.add(dossierId2);
// dossierController.undeleteDossiers(dossierIdsToUndelete);
//
// assertThat(dossierController.getSoftDeletedDossiers().size()).isEqualTo(0);
// }
//
//
// @Test
// public void testSoftAndUndeleteFileAndDossier() throws InterruptedException {
// String u1 = "u1";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2"));
// Dossier dossier = dossierController.addDossier(new DossierRequest("p1", "pd1", u1, "123",
// Collections.singleton(u1), Collections.singleton(u1), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime
// .now(), templateIds, true));
//
//
// FileStatusPersistenceService fileStatusPersistenceService = new FileStatusPersistenceService(cassandraSession, objectMapper);
// String dossierId = dossier.getDossierId();
// String fileId = "fileId";
// String fileId2 = "fileId2";
// String fileId3 = "fileId3";
// fileStatusPersistenceService.createStatus(dossierId, fileId, "filename", "uploader");
// fileStatusPersistenceService.createStatus(dossierId, fileId2, "filename2", "uploader");
// fileStatusPersistenceService.createStatus(dossierId, fileId3, "filename3", "uploader3");
//
// OffsetDateTime now = OffsetDateTime.now().withNano(0);
//
// fileStatusPersistenceService.softDelete(dossierId, fileId, now);
//
// var fileStatus = fileStatusPersistenceService.getStatus(dossierId, fileId);
//
// Thread.sleep(1500);
// dossierController.delete(dossierId);
//
// assertThatThrownBy( () -> dossierController.getDossierById(dossierId)).isInstanceOf(DossierNotFoundException.class);
//
// List<Dossier> deletedDossiers = dossierController.getSoftDeletedDossiers();
//
// assertThat(deletedDossiers.size()).isEqualTo(1);
//
// Set<String> dossierSet = new HashSet<>();
// dossierSet.add(dossierId);
// dossierController.undeleteDossiers(dossierSet);
//
// assertThat(dossierController.getSoftDeletedDossiers()).isEmpty();
// assertThat(dossierController.getDossierById(dossierId)).isNotNull();
//
// assertThat(fileStatusPersistenceService.getStatus(dossierId).size()).isEqualTo(3);
// assertThat(fileStatusPersistenceService.getStatus(dossierId, fileId).getStatus()).isEqualTo(Status.DELETED);
//
// }
}

View File

@ -0,0 +1,96 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.controller.*;
import com.iqser.red.service.pdftron.redaction.v1.api.model.PdfTronOptimizeResponse;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.BinaryFileRequest;
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.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
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.DossierTemplate;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.DownloadFileType;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import java.nio.charset.StandardCharsets;
import java.time.OffsetDateTime;
import java.util.List;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.mockito.Mockito.when;
public class End2EndAPITest extends AbstractFileManagementServerServiceTest {
@Autowired
private ViewedPagesController viewedPagesController;
@Autowired
private UploadController uploadController;
@Autowired
private DossierController dossierController;
@Autowired
private DossierTemplateController dossierTemplateController;
@Autowired
private ViewedPagesPersistenceService viewedPagesPersistenceService;
@Autowired
private FileStatusController fileStatusController;
@Before
public void before() {
when(pdfTronRedactionClient.optimize(Mockito.any())).thenReturn(new PdfTronOptimizeResponse("test".getBytes()));
}
@Test
public void testViewedPages() {
CreateOrUpdateDossierTemplateRequest cru = new CreateOrUpdateDossierTemplateRequest();
cru.setCreatedBy("1");
cru.setDateAdded(OffsetDateTime.now());
cru.setDateModified(OffsetDateTime.now());
cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL));
cru.setName("Template 1");
cru.setDescription("Template 1");
cru.setRequestingUser("1");
cru.setValidFrom(OffsetDateTime.now());
cru.setValidTo(OffsetDateTime.now());
DossierTemplate result = dossierTemplateController.createOrUpdateDossierTemplate(cru);
CreateOrUpdateDossierRequest request = new CreateOrUpdateDossierRequest();
request.setDate(OffsetDateTime.now());
request.setApproverIds(Sets.newHashSet("1", "2", "3"));
request.setDossierName("Test Dossier");
request.setOwnerId("1");
request.setStatus(DossierStatus.ACTIVE);
request.setDossierTemplateId(result.getId());
var dossier = dossierController.addDossier(request);
BinaryFileRequest upload = new BinaryFileRequest("test".getBytes(StandardCharsets.UTF_8), "test.pdf", dossier.getId(), "1");
JSONPrimitive<String> uploadResult = uploadController.upload(upload);
var file = fileStatusController.getFileStatus(dossier.getId(), uploadResult.getValue());
var fileId = file.getId();
viewedPagesController.addPage(fileId, "1", 1);
viewedPagesController.addPage(fileId, "1", 2);
viewedPagesController.addPage(fileId, "1", 3);
viewedPagesController.removePage(fileId, "1", 1);
List<ViewedPage> viewedPages = viewedPagesController.getViewedPages(fileId, "1");
assertThat(viewedPages.stream().map(viewedPage -> viewedPage.getId().getPage())).containsExactlyInAnyOrder(2, 3);
viewedPagesPersistenceService.deleteForFile(fileId);
viewedPages = viewedPagesController.getViewedPages(fileId, "1");
assertThat(viewedPages).isEmpty();
}
}

View File

@ -1,86 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.google.common.collect.Sets;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import com.iqser.red.service.file.management.v1.server.controller.FileStatusController;
import com.iqser.red.service.file.management.v1.server.service.ExcludeFromAnalysisService;
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.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Set;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
public class ExcludeFromAnalysisTest extends AbstractFileManagementServerServiceTest {
// @Autowired
// private ExcludeFromAnalysisService excludeFromAnalysisService;
//
// @Autowired
// private FileStatusPersistenceService fileStatusPersistenceService;
//
// @Autowired
// private DossierPersistenceService dossierPersistenceService;
//
// @Autowired
// private FileStatusController fileStatusController;
//
//
// @Before
// public void before() {
// var dossier = CreateOrUpdateDossierRequest.builder()
// .dossierName("test")
// .date(OffsetDateTime.now())
// .ownerId("123")
// .description("test")
// .dossierTemplateId("123")
// .memberIds(Sets.newHashSet("123")).build();
// dossierPersistenceService.insert(dossier);
//
// }
//
// @Test
// public void testExclusion() {
//
// fileStatusPersistenceService.createStatus("1", "1", "test.pdf", "test");
// fileStatusPersistenceService.setCurrentReviewer("1", "1", "test", "test");
// fileStatusPersistenceService.updateStatus("1", "1", Status.UNDER_REVIEW);
// excludeFromAnalysisService.toggleExclusion("1", "1", true);
//
// var status = fileStatusPersistenceService.getStatus("1", "1");
// assertThat(status.isExcluded()).isEqualTo(true);
//
// excludeFromAnalysisService.toggleExclusion("1", "1", false);
// status = fileStatusPersistenceService.getStatus("1", "1");
// assertThat(status.isExcluded()).isEqualTo(false);
// assertThat(Status.PROCESSING).isEqualTo(status.getStatus());
// }
//
//
// @Test
// public void testExcludePage() {
//
// fileStatusPersistenceService.createStatus("1", "1", "test.pdf", "test");
//
// fileStatusController.excludePages("1", "1", PageExclusionRequest.builder().pageRanges(List.of(
// PageRange.builder().startPage(1).endPage(1).build()
// , PageRange.builder().startPage(3).endPage(7).build())).build());
//
//
// var status = fileStatusPersistenceService.getStatus("1", "1");
// assertThat(status.getExcludedPages()).isEqualTo(Set.of(1, 3, 4, 5, 6, 7));
//
// fileStatusController.includePages("1", "1", PageExclusionRequest.builder().pageRanges(List.of(
// PageRange.builder().startPage(4).endPage(5).build()
// , PageRange.builder().startPage(19).endPage(19).build())).build());
// status = fileStatusPersistenceService.getStatus("1", "1");
// assertThat(status.getExcludedPages()).isEqualTo(Set.of(1, 3, 6, 7));
// }
}

View File

@ -1,80 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
public class FileAttributesTest extends AbstractFileManagementServerServiceTest {
// @Autowired
// private FileAttributesController fileAttributesController;
//
// @Autowired
// private FileStatusPersistenceService fileStatusPersistenceService;
//
// @Autowired
// private DossierController dossierController;
//
// @Test
// public void testFileAttributes() throws IOException {
//
// FileAttributesConfig configuredFileAttributes = new FileAttributesConfig();
// configuredFileAttributes.setDelimiter(",");
// configuredFileAttributes.setFilenameMappingColumnHeaderName("Path");
// configuredFileAttributes.setFileAttributeConfigs((List.of(
// new FileAttributeConfig("RegulatoryUtilityId", "Regulatory Utility", "Regulatory Utility Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"),
// new FileAttributeConfig("DataEvaluationRecordId", "Data Evaluation Record", "DataEvaluation Record Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"),
// new FileAttributeConfig("RegulatoryReleasedId", "Regulatory Released", "Regulatory Released Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"))));
// when(fileAttributesConfigClient.getFileAttributes("123")).thenReturn(configuredFileAttributes);
//
// Dossier dossier = dossierController.addDossier(new DossierRequest("p2", "pd1", "user", "123", Collections.singleton("u1"),
// Collections.singleton("u1"),
// Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime.now(), null, true));
//
// fileStatusPersistenceService.createStatus(dossier.getId(), "fileId1", "Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the.pdf", "uploader");
// fileStatusPersistenceService.createStatus(dossier.getId(), "fileId2", "Lambda-cyhalothrin - EU AIR5 - MCA Section 5 - Toxicology.pdf", "uploader");
// fileStatusPersistenceService.createStatus(dossier.getId(), "fileId3", "Lambda-cyhalothrin - EU AIR5 - LCA Section 5 Reference List.pdf", "uploader");
// fileStatusPersistenceService.createStatus(dossier.getId(), "fileId4", "Lambda-cyhalothrin - EU AIR5 - LCA Section 4 Reference List.pdf", "uploader");
//
// ClassPathResource exportSummeryResource = new ClassPathResource("files/export_summary.csv");
//
// ImportCsvRequest importCsvRequest = ImportCsvRequest.builder()
// .csvFile(IOUtils.toByteArray(exportSummeryResource.getInputStream()))
// .build();
//
// ImportCsvResponse importCsvResponse = fileAttributesController.importCsv(dossier.getId(), importCsvRequest);
//
// assertThat(importCsvResponse.getAffectedFileIds().size()).isEqualTo(4);
//
// List<File> dossierFileStatus = fileStatusPersistenceService.getStatus(dossier.getId());
//
// dossierFileStatus.forEach(status -> {
// assertThat(status.getFileAttributes().getAttributeIdToValue().size()).isEqualTo(3);
// });
// }
//
//
// @Test
// public void testSetFileAttributes() {
//
// FileAttributesConfig configuredFileAttributes = new FileAttributesConfig();
// configuredFileAttributes.setDelimiter(",");
// configuredFileAttributes.setFilenameMappingColumnHeaderName("Path");
// configuredFileAttributes.setFileAttributeConfigs((List.of(new FileAttributeConfig("RegulatoryUtilityId", "Regulatory Utility", "Regulatory Utility Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"),
// new FileAttributeConfig("DataEvaluationRecordId", "DataEvaluation Record", "DataEvaluation Record Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"),
// new FileAttributeConfig("RegulatoryReleasedId", "Regulatory Released", "Regulatory Released Label", true, false, FileAttributeConfig.FileAttributeType.TEXT, "placeholder"))));
//
// when(fileAttributesConfigClient.getFileAttributes("123")).thenReturn(configuredFileAttributes);
//
// Dossier dossier = dossierController.addDossier(new DossierRequest("p2", "pd1", "user", "123",
// Collections.singleton("u1"), Collections.singleton("u1"), Sets.newHashSet(), Sets.newHashSet(), OffsetDateTime.now(), null, true));
//
// fileStatusPersistenceService.createStatus(dossier.getId(), "fileId1", "Lambda-cyhalothrin - EU AIR5 - Document A - Statement of the.pdf", "uploader");
//
// Map<String, String> attributeIdToValue = new HashMap<>();
// attributeIdToValue.put("RegulatoryUtilityId", "Something");
// com.iqser.red.service.file.management.v1.api.model.data.dossier.FileAttributes fileAttributes = new FileAttributes(attributeIdToValue);
// fileAttributesController.setFileAttributes(dossier.getId(), "fileId1", fileAttributes);
//
// File status = fileStatusPersistenceService.getStatus(dossier.getId(), "fileId1");
//
// assertThat(status.getFileAttributes().getAttributeIdToValue().size()).isEqualTo(1);
// }
}

View File

@ -1,144 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.google.common.collect.Sets;
import com.iqser.red.service.file.management.v1.server.controller.ManualRedactionController;
import com.iqser.red.service.file.management.v1.server.service.FileService;
import com.iqser.red.service.file.management.v1.server.service.ManualRedactionService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import com.iqser.red.service.persistence.service.v1.api.model.*;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ManualRedactionEntry;
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 com.iqser.red.service.redaction.v1.model.Point;
import com.iqser.red.service.redaction.v1.model.Rectangle;
import com.iqser.red.service.redaction.v1.model.Status;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.OffsetDateTime;
import java.util.List;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
public class ManualRedactionTest extends AbstractFileManagementServerServiceTest {
// @Autowired
// private ManualRedactionController manualRedactionController;
// @Autowired
// private ManualRedactionService manualRedactionService;
// @Autowired
// private FileStatusPersistenceService fileStatusPersistenceService;
// @Autowired
// private DossierPersistenceService dossierPersistenceService;
// @Autowired
// private FileService fileService;
//
// @Before
// public void before() {
// var dossier = Dossier.builder()
// .dossierName("test")
// .dossierId("dossierId")
// .date(OffsetDateTime.now())
// .ownerId("123")
// .description("test")
// .dossierTemplateId("123")
// .memberIds(Sets.newHashSet("123")).build();
// dossierPersistenceService.insert(dossier);
//
// }
//
// @Test
// public void testAddRedaction() {
//
// String dossierId = "dossierId";
// String fileId = "FileId";
//
// fileStatusPersistenceService.createStatus(dossierId, fileId, "dummy.pdf", "uploader");
//
// AddRedactionRequest addRedactionRequest = AddRedactionRequest.builder()
// .user("TEST_USER")
// .type("name")
// .value("O'Loughlin C.K.")
// .reason("Manual Redaction")
// .status(Status.REQUESTED)
// .positions(List.of(new Rectangle(new Point(375.61096f, 241.282f), 7.648041f, 43.72262f, 1), new Rectangle(new Point(384.83517f, 241.282f), 7.648041f, 17.043358f, 1)))
// .comment("This is a comment test")
// .addToDictionary(false)
// .build();
//
// ManualAddResponse manualAddResponse = manualRedactionController.addAddRedaction(dossierId, fileId, addRedactionRequest);
//
// ManualRedactionEntry manualRedactionEntry = manualRedactionController.getAddRedaction(fileId, manualAddResponse.getAnnotationId());
//
// assertThat(manualRedactionEntry.getStatus()).isEqualTo(Status.REQUESTED);
//
// manualRedactionController.updateAddRedactionStatus(dossierId, fileId, manualAddResponse.getAnnotationId(), new com.iqser.red.service.file.management.v1.api.model.UpdateStatusRequest(Status.APPROVED, false));
//
// manualRedactionEntry = manualRedactionController.getAddRedaction(fileId, manualAddResponse.getAnnotationId());
//
// assertThat(manualRedactionEntry.getStatus()).isEqualTo(Status.APPROVED);
//
// manualRedactionController.addComment(dossierId, fileId, manualAddResponse.getAnnotationId(), CommentRequest.builder()
// .text("Second")
// .user("TEST_USER")
// .build());
//
// ManualRedactions manualRedactions = manualRedactionController.getManualRedactions(dossierId, fileId);
//
// assertThat(manualRedactions.getComments().get(manualAddResponse.getAnnotationId()).size()).isEqualTo(2);
//
// fileService.softDeleteFile(dossierId, fileId, OffsetDateTime.now());
//
// manualRedactions = manualRedactionController.getManualRedactions(dossierId, fileId);
//
// assertThat(manualRedactions.getEntriesToAdd()).isEmpty();
// assertThat(manualRedactions.getIdsToRemove()).isEmpty();
//
// File fileStatus = fileStatusPersistenceService.getStatus(dossierId, fileId);
// assertThat(fileStatus.getLastManualRedaction()).isNotNull();
//
// }
//
// @Test
// public void testRemoveRedaction() {
//
// String dossierId = "dossierId";
// String fileId = "FileId";
// String annotationId = "annotationId";
//
// fileStatusPersistenceService.createStatus(dossierId, fileId, "dummy.pdf", "uploader");
//
// RemoveRedactionRequest removeRedactionRequest = RemoveRedactionRequest.builder()
// .annotationId(annotationId)
// .user("TEST_USER")
// .comment("This is a comment test")
// .removeFromDictionary(false)
// .status(Status.REQUESTED)
// .build();
//
// ManualAddResponse manualAddResponse = manualRedactionController.addRemoveRedaction(dossierId, fileId, removeRedactionRequest);
//
// IdRemoval idRemoval = manualRedactionController.getRemoveRedaction(fileId, manualAddResponse.getAnnotationId());
//
// assertThat(idRemoval.getStatus()).isEqualTo(Status.REQUESTED);
//
// manualRedactionController.updateRemoveRedactionStatus(dossierId, fileId, manualAddResponse.getAnnotationId(), new com.iqser.red.service.file.management.v1.api.model.UpdateStatusRequest(Status.DECLINED, false));
//
// manualRedactionController.addComment(dossierId, fileId, manualAddResponse.getAnnotationId(), CommentRequest.builder()
// .text("Second")
// .user("TEST_USER")
// .build());
//
// ManualRedactions manualRedactions = manualRedactionController.getManualRedactions(dossierId, fileId);
//
// assertThat(manualRedactions.getComments().get(manualAddResponse.getAnnotationId()).size()).isEqualTo(2);
// assertThat(manualRedactions.getIdsToRemove().iterator().next().getStatus()).isEqualTo(Status.DECLINED);
//
// File fileStatus = fileStatusPersistenceService.getStatus(dossierId, fileId);
// assertThat(fileStatus.getLastManualRedaction()).isNotNull();
// }
}

View File

@ -1,96 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.iqser.red.service.persistence.service.v1.api.model.data.dossier.ReportTemplate;
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.management.v1.processor.exception.FileNotFoundException;
import com.iqser.red.service.file.management.v1.server.controller.ReportTemplateController;
import com.iqser.red.storage.commons.service.StorageService;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.IOException;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
public class ReportTemplateTest extends AbstractFileManagementServerServiceTest {
//
// @Autowired
// private StorageService storageService;
//
//
// @Autowired
// private ReportTemplateController reportTemplateController;
//
//
// @Test
// public void testReportTemplateUpload() throws IOException {
// String dossierTemplateId = "dossierTemplateId";
// String template = "template";
// byte[] templateByteArray = template.getBytes();
// ReportTemplateUploadRequest reportTemplateUploadRequest = ReportTemplateUploadRequest.builder().template(templateByteArray)
// .dossierTemplateId(dossierTemplateId).fileName("templateName").build();
//
// ReportTemplate reportTemplate = reportTemplateController.uploadTemplate(reportTemplateUploadRequest);
//
// List<ReportTemplate> reportTemplates = reportTemplateController.getAvailableReportTemplates(dossierTemplateId);
//
// String storageId = reportTemplates.get(0).getStorageId();
//
// byte[] file = IOUtils.toByteArray(storageService.getObject(storageId).getInputStream());
// assertThat(file).isEqualTo(templateByteArray);
// assertThat(reportTemplate.getStorageId()).isEqualTo(storageId);
// }
//
// @Test
// public void testGetAvailableReportTemplates() {
// String dossierTemplateId = "dossierTemplateId";
// String template = "template";
// byte[] templateByteArray = template.getBytes();
// ReportTemplateUploadRequest reportTemplateUploadRequest = ReportTemplateUploadRequest.builder().template(templateByteArray)
// .dossierTemplateId(dossierTemplateId).fileName("templateName").build();
//
// ReportTemplate reportTemplate = reportTemplateController.uploadTemplate(reportTemplateUploadRequest);
//
// List<ReportTemplate> reportTemplates = reportTemplateController.getAvailableReportTemplates(reportTemplate.getDossierTemplateId());
//
// assertThat(reportTemplate.getTemplateId()).isEqualTo(reportTemplates.get(0).getTemplateId());
// }
//
// @Test
// public void testDownloadReportTemplate() {
// String dossierTemplateId = "dossierTemplateId";
// String template = "template";
// byte[] templateByteArray = template.getBytes();
// ReportTemplateUploadRequest reportTemplateUploadRequest = ReportTemplateUploadRequest.builder().template(templateByteArray)
// .dossierTemplateId(dossierTemplateId).fileName("templateName").build();
//
// ReportTemplate reportTemplate = reportTemplateController.uploadTemplate(reportTemplateUploadRequest);
//
// ReportTemplateDownload reportTemplateDownload = reportTemplateController.downloadReportTemplate(reportTemplate.getDossierTemplateId(), reportTemplate.getTemplateId());
//
// assertThat(reportTemplateDownload.getFile()).isEqualTo(templateByteArray);
// }
//
// @Test
// public void testDeleteTemplate() {
// String dossierTemplateId = "dossierTemplateId";
// String template = "template";
// byte[] templateByteArray = template.getBytes();
// ReportTemplateUploadRequest reportTemplateUploadRequest = ReportTemplateUploadRequest.builder().template(templateByteArray)
// .dossierTemplateId(dossierTemplateId).fileName("templateName").build();
//
// ReportTemplate reportTemplate = reportTemplateController.uploadTemplate(reportTemplateUploadRequest);
//
// reportTemplateController.deleteTemplate(reportTemplate.getDossierTemplateId(), reportTemplate.getTemplateId());
//
// assertThat(reportTemplateController.getAvailableReportTemplates(reportTemplate.getDossierTemplateId())).isEmpty();
// assertThatThrownBy(() -> reportTemplateController.downloadReportTemplate(dossierTemplateId, reportTemplate.getTemplateId())).isInstanceOf(
// FileNotFoundException.class);
// }
}

View File

@ -1,42 +0,0 @@
package com.iqser.red.service.file.management.v1.server.integration;
import com.iqser.red.service.persistence.service.v1.api.model.data.annotations.ViewedPage;
import com.iqser.red.service.file.management.v1.server.controller.ViewedPagesController;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
public class ViewedPagesTest extends AbstractFileManagementServerServiceTest {
@Autowired
private ViewedPagesController viewedPagesController;
@Autowired
private ViewedPagesPersistenceService viewedPagesPersistenceService;
@Test
public void testViewedPages() {
String fileId = "fileId";
String role = "reviewer";
viewedPagesController.addPage(fileId, role, 1);
viewedPagesController.addPage(fileId, role, 2);
viewedPagesController.addPage(fileId, role, 3);
viewedPagesController.removePage(fileId, role, 1);
List<ViewedPage> viewedPages = viewedPagesController.getViewedPages(fileId, role);
assertThat(viewedPages.stream().map(viewedPage -> viewedPage.getId().getPage())).containsExactlyInAnyOrder(2, 3);
viewedPagesPersistenceService.deleteForFile(fileId);
viewedPages = viewedPagesController.getViewedPages(fileId, role);
assertThat(viewedPages).isEmpty();
}
}

View File

@ -1,66 +0,0 @@
package com.iqser.red.service.file.management.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.Dossier;
import org.assertj.core.util.Sets;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.time.OffsetDateTime;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class DossierServiceTest {
//
// @InjectMocks
// private DossierService dossierService;
//
// @Mock
// private DossierPersistenceService dossierPersistenceService;
//
// @Test
// public void testAddAndUpdateDossier() {
//
// String userId = "user id";
// Set<String> templateIds = new HashSet<>(Arrays.asList("templateId1", "templateId2", "templateId3"));
// DossierRequest dossierRequest = new DossierRequest("DossierName",
// null,
// userId,
// "123",
// Collections.singleton(userId),
// Collections.singleton(userId),
// Sets.newHashSet(),
// Sets.newHashSet(),
// OffsetDateTime.now(),
// templateIds,
// true);
// Dossier expected = Dossier.builder()
// .dossierName(dossierRequest.getDossierName())
// .description("")
// .build();
// when(dossierPersistenceService.findByDossierId(anyString())).thenReturn(expected);
// Dossier dossier = dossierService.addDossier(dossierRequest);
// assertThat(dossier.getDossierName()).isEqualTo(expected.getDossierName());
// assertThat(dossier.getDescription()).isEqualTo(expected.getDescription());
//
// String updatedName = "Updated name";
// dossierRequest.setDossierName(updatedName);
// expected.setDossierName(updatedName);
// expected.setDossierTemplateId("123");
// when(dossierPersistenceService.findByDossierId(any())).thenReturn(expected);
// assertThat(dossierService.updateDossier(dossierRequest, expected.getDossierId())).isEqualTo(expected);
//
// }
}

View File

@ -1,163 +0,0 @@
package com.iqser.red.service.file.management.v1.server.service;
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 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.download.DownloadCleanupService;
import com.iqser.red.service.file.management.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.storage.commons.service.StorageService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.time.OffsetDateTime;
import java.util.List;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class DownloadCleanupServiceTest {
//
// @Mock
// private DossierService dossierService;
//
// @Mock
// private DownloadStatusPersistenceService downloadStatusPersistenceService;
//
// @Mock
// private StorageService storageService;
//
// @Mock
// private FileManagementServiceSettings settings;
//
// @InjectMocks
// private DownloadCleanupService downloadCleanupService;
//
//
// @Test
// public void testDeleteAfterLastDownload() {
// DownloadStatus downloadStatus = new DownloadStatus("userId",
// "storageID",
// "dossierId",
// "filename",
// "mimeType",
// DownloadStatusValue.GENERATING,
// OffsetDateTime.now().minusHours(13),
// OffsetDateTime.now().minusHours(9),
// null,
// 10);
//
// Dossier expected = Dossier.builder()
// .dossierId("p1")
// .dossierName("pName")
// .status(DossierStatus.DELETED)
// .build();
//
// when(settings.getDownloadCleanupFetchLimit()).thenReturn(200);
// when(settings.getDownloadCleanupDownloadFilesHours()).thenReturn(8);
//
// when(downloadStatusPersistenceService.getStatus(settings.getDownloadCleanupFetchLimit())).thenReturn(List.of(downloadStatus));
//
// downloadCleanupService.processDocuments();
//
// verify(storageService, times(1)).deleteObject(downloadStatus.getStorageId());
// }
//
// @Test
// public void testDeleteWithoutDownload() {
// DownloadStatus downloadStatus = new DownloadStatus("userId",
// "storageID",
// "dossierId",
// "filename",
// "mimeType",
// DownloadStatusValue.READY,
// OffsetDateTime.now().minusHours(73),
// null,
// null,
// 10);
//
// Dossier expected = Dossier.builder()
// .dossierId("p1")
// .dossierName("pName")
// .status(DossierStatus.DELETED)
// .build();
//
// when(settings.getDownloadCleanupFetchLimit()).thenReturn(200);
// when(settings.getDownloadCleanupNotDownloadFilesHours()).thenReturn(72);
//
// when(downloadStatusPersistenceService.getStatus(settings.getDownloadCleanupFetchLimit())).thenReturn(List.of(downloadStatus));
//
// downloadCleanupService.processDocuments();
//
// verify(storageService, times(1)).deleteObject(downloadStatus.getStorageId());
// }
//
// @Test
// public void testDossierNotExists() {
//
// DownloadStatus downloadStatus = new DownloadStatus("userId",
// "storageID",
// "dossierId",
// "filename",
// "mimeType",
// DownloadStatusValue.GENERATING,
// OffsetDateTime.now().minusHours(2),
// OffsetDateTime.now().minusHours(1),
// null,
// 10);
//
// Dossier expected = Dossier.builder()
// .dossierId("p1")
// .dossierName("pName")
// .status(DossierStatus.DELETED)
// .build();
//
// when(settings.getDownloadCleanupFetchLimit()).thenReturn(200);
// when(settings.getDownloadCleanupDownloadFilesHours()).thenReturn(8);
//
// when(dossierService.getDossierById(anyString())).thenReturn(expected);
// when(downloadStatusPersistenceService.getStatus(settings.getDownloadCleanupFetchLimit())).thenReturn(List.of(downloadStatus));
//
// downloadCleanupService.processDocuments();
//
// verify(storageService, times(1)).deleteObject(downloadStatus.getStorageId());
// }
//
// @Test
// public void testNoDelete() {
//
// DownloadStatus downloadStatus = new DownloadStatus("userId",
// "storageID",
// "dossierId",
// "filename",
// "mimeType",
// DownloadStatusValue.GENERATING,
// OffsetDateTime.now().minusHours(2),
// OffsetDateTime.now().minusHours(1),
// null,
// 10);
//
// Dossier expected = Dossier.builder()
// .dossierId("p1")
// .dossierName("pName")
// .status(DossierStatus.ACTIVE)
// .build();
//
// when(settings.getDownloadCleanupFetchLimit()).thenReturn(200);
// when(settings.getDownloadCleanupDownloadFilesHours()).thenReturn(8);
//
// when(dossierService.getDossierById(anyString())).thenReturn(expected);
// when(downloadStatusPersistenceService.getStatus(settings.getDownloadCleanupFetchLimit())).thenReturn(List.of(downloadStatus));
//
// downloadCleanupService.processDocuments();
//
// verify(storageService, times(0)).deleteObject(downloadStatus.getStorageId());
// }
}

View File

@ -1,310 +0,0 @@
package com.iqser.red.service.file.management.v1.server.service;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class LicenseReportServiceTest {
//
// @InjectMocks
// private LicenseReportService licenseReportService;
//
// @Mock
// private FileStatusService fileStatusService;
//
// @Mock
// private DossierService dossierService;
//
// @Test
// public void testRedactionReportService() {
//
// LicenseReportRequest licenseReportRequest = new LicenseReportRequest();
//
// LicenseReport licenseReport = licenseReportService.getLicenseReport(licenseReportRequest, 0, 20);
// assertThat(licenseReport.getData()).hasSize(15);
// assertThat(licenseReport.getNumberOfAnalyzedFiles()).isEqualTo(15);
// assertThat(licenseReport.getNumberOfAnalyses()).isEqualTo(13);
// assertThat(licenseReport.getNumberOfAnalyzedPages()).isEqualTo(1020);
// assertThat(licenseReport.getRequestId()).isNotEmpty();
// assertThat(licenseReport.getNumberOfDossiers()).isEqualTo(5);
// assertThat(licenseReport.getStartDate()).isEqualTo(licenseReportRequest.getStartDate());
// assertThat(licenseReport.getEndDate()).isEqualTo(licenseReportRequest.getEndDate());
// assertThat(licenseReport.getNumberOfOcrFiles()).isEqualTo(1);
// assertThat(licenseReport.getNumberOfOcrPages()).isEqualTo(30);
//
// }
//
// @Test
// public void testRedactionReportServiceWithPagination() {
//
// LicenseReportRequest licenseReportRequest = new LicenseReportRequest();
//
// LicenseReport licenseReport = licenseReportService.getLicenseReport(licenseReportRequest, 0, 10);
// assertThat(licenseReport.getData()).hasSize(10);
// assertThat(licenseReport.getNumberOfAnalyzedFiles()).isEqualTo(15);
// assertThat(licenseReport.getNumberOfAnalyses()).isEqualTo(13);
// assertThat(licenseReport.getNumberOfAnalyzedPages()).isEqualTo(1020);
// assertThat(licenseReport.getRequestId()).isNotEmpty();
// assertThat(licenseReport.getNumberOfDossiers()).isEqualTo(5);
// assertThat(licenseReport.getStartDate()).isEqualTo(licenseReportRequest.getStartDate());
// assertThat(licenseReport.getEndDate()).isEqualTo(licenseReportRequest.getEndDate());
//
// // make sure the service set a request id
// assertThat(licenseReportRequest.getRequestId()).isNotEmpty();
//
// LicenseReportRequest consecutiveRequest = new LicenseReportRequest();
// consecutiveRequest.setRequestId(licenseReportRequest.getRequestId());
//
// licenseReport = licenseReportService.getLicenseReport(consecutiveRequest, 10, 10);
// assertThat(licenseReport.getData()).hasSize(5);
// assertThat(licenseReport.getNumberOfAnalyzedFiles()).isEqualTo(15);
// assertThat(licenseReport.getNumberOfAnalyses()).isEqualTo(13);
// assertThat(licenseReport.getNumberOfAnalyzedPages()).isEqualTo(1020);
// assertThat(licenseReport.getRequestId()).isNotEmpty();
// assertThat(licenseReport.getNumberOfDossiers()).isEqualTo(5);
// assertThat(licenseReport.getStartDate()).isEqualTo(licenseReportRequest.getStartDate());
// assertThat(licenseReport.getEndDate()).isEqualTo(licenseReportRequest.getEndDate());
//
// }
//
// @Before
// public void stubTests() {
//
// List<Dossier> allDossiers = new ArrayList<>();
// Dossier dossier1 = Dossier.builder()
// .dossierId("dossier1")
// .dossierName("dossier1name")
// .build();
// Dossier dossier2 = Dossier.builder()
// .dossierId("dossier2")
// .dossierName("dossier2name")
// .build();
// Dossier dossier3 = Dossier.builder()
// .dossierId("dossier3")
// .dossierName("dossier3name")
// .build();
// Dossier dossier4 = Dossier.builder()
// .dossierId("dossier4")
// .dossierName("dossier4name")
// .build();
// Dossier dossier5 = Dossier.builder()
// .dossierId("dossier5")
// .dossierName("dossier5name")
// .build();
// allDossiers.add(dossier1);
// allDossiers.add(dossier2);
// allDossiers.add(dossier3);
// allDossiers.add(dossier4);
// allDossiers.add(dossier5);
//
// when(dossierService.getAllDossiers()).thenReturn(allDossiers);
// List<File> dossier1Status = new ArrayList<>();
// File fileStatus1Dossier1 = File.builder()
// .dossierId(dossier1.getDossierId())
// .fileId("file1dossier1")
// .filename("file1dossier1.exe")
// .status(Status.UNASSIGNED)
// .numberOfPages(100)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(2)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus2Dossier1 = File.builder()
// .dossierId(dossier1.getDossierId())
// .fileId("file2roject1")
// .filename("file2dossier1.exe")
// .status(Status.UNASSIGNED)
// .numberOfPages(100)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(2)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus3Dossier1 = File.builder()
// .dossierId(dossier1.getDossierId())
// .fileId("file3dossier1")
// .filename("file3dossier1.exe")
// .status(Status.UNASSIGNED)
// .numberOfPages(100)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(2)
// .currentReviewer("reviewer1")
// .build();
// dossier1Status.add(fileStatus1Dossier1);
// dossier1Status.add(fileStatus2Dossier1);
// dossier1Status.add(fileStatus3Dossier1);
// List<File> dossier2Status = new ArrayList<>();
// File fileStatus1Dossier2 = File.builder()
// .dossierId(dossier2.getDossierId())
// .fileId("file1dossier2")
// .filename("file1dossier2.exe")
// .status(Status.PROCESSING)
// .numberOfPages(120)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(1)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus2Dossier2 = File.builder()
// .dossierId(dossier2.getDossierId())
// .fileId("file2dossier2")
// .filename("file2dossier2.exe")
// .status(Status.PROCESSING)
// .numberOfPages(120)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(1)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus3Dossier2 = File.builder()
// .dossierId(dossier2.getDossierId())
// .fileId("file3dossier2")
// .filename("file3dossier2.exe")
// .status(Status.PROCESSING)
// .numberOfPages(120)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(OffsetDateTime.now().minusMinutes(1))
// .deleted(null)
// .numberOfAnalyses(1)
// .currentReviewer("reviewer1")
// .build();
// dossier2Status.add(fileStatus1Dossier2);
// dossier2Status.add(fileStatus2Dossier2);
// dossier2Status.add(fileStatus3Dossier2);
// List<File> dossier3Status = new ArrayList<>();
// File fileStatus1Dossier3 = File.builder()
// .dossierId(dossier3.getDossierId())
// .fileId("file1dossier3")
// .filename("file1dossier3.exe")
// .status(Status.ERROR)
// .numberOfPages(60)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus2Dossier3 = File.builder()
// .dossierId(dossier3.getDossierId())
// .fileId("file2dossier3")
// .filename("file2dossier3.exe")
// .status(Status.ERROR)
// .numberOfPages(60)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus3Dossier3 = File.builder()
// .dossierId(dossier3.getDossierId())
// .fileId("file3dossier3")
// .filename("file3dossier3.exe")
// .status(Status.ERROR)
// .numberOfPages(60)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// dossier3Status.add(fileStatus1Dossier3);
// dossier3Status.add(fileStatus2Dossier3);
// dossier3Status.add(fileStatus3Dossier3);
// List<File> dossier4Status = new ArrayList<>();
// File fileStatus1Dossier4 = File.builder()
// .dossierId(dossier4.getDossierId())
// .fileId("file1dossier4")
// .filename("file1dossier4.exe")
// .status(Status.UNPROCESSED)
// .numberOfPages(30)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus2Dossier4 = File.builder()
// .dossierId(dossier4.getDossierId())
// .fileId("file2dossier4")
// .filename("file2dossier4.exe")
// .status(Status.UNPROCESSED)
// .numberOfPages(30)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus3Dossier4 = File.builder()
// .dossierId(dossier4.getDossierId())
// .fileId("file3dossier4")
// .filename("file3dossier4.exe")
// .status(Status.UNPROCESSED)
// .numberOfPages(30)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(0)
// .currentReviewer("reviewer1")
// .build();
// dossier4Status.add(fileStatus1Dossier4);
// dossier4Status.add(fileStatus2Dossier4);
// dossier4Status.add(fileStatus3Dossier4);
// List<File> dossier5Status = new ArrayList<>();
// File fileStatus1Dossier5 = File.builder()
// .dossierId(dossier5.getDossierId())
// .fileId("file1dossier5")
// .filename("file1dossier5.exe")
// .status(Status.REPROCESS)
// .numberOfPages(30)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(1)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus2Dossier5 = File.builder()
// .dossierId(dossier5.getDossierId())
// .fileId("file2dossier5")
// .filename("file2dossier5.exe")
// .status(Status.REPROCESS)
// .numberOfPages(30)
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(1)
// .currentReviewer("reviewer1")
// .build();
// File fileStatus3Dossier5 = File.builder()
// .dossierId(dossier5.getDossierId())
// .fileId("file3dossier5")
// .filename("file3dossier5.exe")
// .status(Status.UNASSIGNED)
// .numberOfPages(30)
// .lastOCRTime(OffsetDateTime.now())
// .added(OffsetDateTime.now().minusMinutes(2))
// .lastUpdated(null)
// .deleted(null)
// .numberOfAnalyses(2)
// .currentReviewer("reviewer1")
// .build();
// dossier5Status.add(fileStatus1Dossier5);
// dossier5Status.add(fileStatus2Dossier5);
// dossier5Status.add(fileStatus3Dossier5);
//
// when(fileStatusService.getDossierStatus(dossier1.getDossierId())).thenReturn(dossier1Status);
// when(fileStatusService.getDossierStatus(dossier2.getDossierId())).thenReturn(dossier2Status);
// when(fileStatusService.getDossierStatus(dossier3.getDossierId())).thenReturn(dossier3Status);
// when(fileStatusService.getDossierStatus(dossier4.getDossierId())).thenReturn(dossier4Status);
// when(fileStatusService.getDossierStatus(dossier5.getDossierId())).thenReturn(dossier5Status);
//
// }
}

View File

@ -1,7 +1,3 @@
cassandra:
keyspace-name: file_management_service
migrations-location: 'classpath:cassandra/migrations/*.cql'
spring:
rabbitmq:
host: ${RABBITMQ_HOST:localhost}
@ -21,9 +17,16 @@ spring:
cache:
maxSize: 60
redaction-service.url: "http://redaction-service-v1:8080"
configuration-service.url: "http://configuration-service-v1:8080"
pdftron-redaction-service.url: "http://pdftron-redaction-service-v1:8080"
redaction-report-service.url: "http://redaction-report-service-v1:8080"
search-service.url: "http://search-service-v1:8080"
storage:
bucket-name: 'redaction'
endpoint: 'http://localhost:9000'
key: minioadmin
secret: minioadmin