work in progress on e2e test and added missing controllers
This commit is contained in:
parent
9b07692fb8
commit
a6798eb613
@ -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();
|
||||
|
||||
@ -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<>();
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
}
|
||||
@ -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);
|
||||
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -9,4 +9,5 @@ public interface DossierAttributeRepository extends JpaRepository<DossierAttribu
|
||||
|
||||
List<DossierAttribute> findByIdDossierId(String dossierId);
|
||||
|
||||
void deleteByDossierId(String dossierId);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -27,3 +27,5 @@ spring:
|
||||
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
|
||||
generate-ddl: true
|
||||
|
||||
|
||||
open-in-view: true
|
||||
|
||||
@ -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());
|
||||
// });
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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());
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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());
|
||||
// });
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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());
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
// }
|
||||
}
|
||||
@ -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);
|
||||
//
|
||||
// }
|
||||
}
|
||||
@ -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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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));
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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);
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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();
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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);
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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);
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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());
|
||||
// }
|
||||
|
||||
}
|
||||
@ -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);
|
||||
//
|
||||
// }
|
||||
}
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user