Pull request #531: RED-5142: Sonar issues: persistence-service
Merge in RED/persistence-service from RED-5142-ps1 to master * commit '5286ca5b49d7957347e6b2d2c61fbc340267990d': RED-5142: Sonar issues: persistence-service
This commit is contained in:
commit
9ab04acece
@ -113,7 +113,7 @@ public class DossierTemplateCloneService {
|
|||||||
cloneWatermarks(dossierTemplate.getId(), clonedDossierTemplate.getId());
|
cloneWatermarks(dossierTemplate.getId(), clonedDossierTemplate.getId());
|
||||||
|
|
||||||
}, () -> {
|
}, () -> {
|
||||||
throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));
|
throw new NotFoundException(String.format(DossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));
|
||||||
});
|
});
|
||||||
|
|
||||||
return clonedDossierTemplate;
|
return clonedDossierTemplate;
|
||||||
|
|||||||
@ -1,7 +1,16 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
|
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.service.DossierService;
|
import com.iqser.red.service.peristence.v1.server.service.DossierService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService;
|
||||||
@ -9,17 +18,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource;
|
import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -31,8 +31,7 @@ public class DossierAttributesController implements DossierAttributesResource {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DossierAttribute> setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public List<DossierAttribute> setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody List<DossierAttribute> dossierAttributes) {
|
||||||
@RequestBody List<DossierAttribute> dossierAttributes) {
|
|
||||||
|
|
||||||
var dossier = dossierService.getDossierById(dossierId);
|
var dossier = dossierService.getDossierById(dossierId);
|
||||||
var config = dossierAttributeConfigPersistenceService.getDossierAttributes(dossier.getDossierTemplateId());
|
var config = dossierAttributeConfigPersistenceService.getDossierAttributes(dossier.getDossierTemplateId());
|
||||||
@ -51,9 +50,9 @@ public class DossierAttributesController implements DossierAttributesResource {
|
|||||||
return getDossierAttributes(dossierId);
|
return getDossierAttributes(dossierId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody DossierAttribute dossierAttribute) {
|
||||||
@RequestBody DossierAttribute dossierAttribute) {
|
|
||||||
|
|
||||||
var dossier = dossierService.getDossierById(dossierId);
|
var dossier = dossierService.getDossierById(dossierId);
|
||||||
var dossierAttributes = dossierAttributePersistenceService.getDossierAttributes(dossierId);
|
var dossierAttributes = dossierAttributePersistenceService.getDossierAttributes(dossierId);
|
||||||
@ -62,8 +61,10 @@ public class DossierAttributesController implements DossierAttributesResource {
|
|||||||
var typeById = config.stream().collect(Collectors.toMap(entry -> entry.getId(), entry -> entry.getType()));
|
var typeById = config.stream().collect(Collectors.toMap(entry -> entry.getId(), entry -> entry.getType()));
|
||||||
validateDossierAttribute(typeById, dossierAttribute);
|
validateDossierAttribute(typeById, dossierAttribute);
|
||||||
|
|
||||||
if (dossierAttributes.stream().anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId())
|
if (dossierAttributes.stream()
|
||||||
&& d.getId().getDossierAttributeConfigId().equals(dossierAttribute.getDossierAttributeConfigId()))) {
|
.anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId()) && d.getId()
|
||||||
|
.getDossierAttributeConfigId()
|
||||||
|
.equals(dossierAttribute.getDossierAttributeConfigId()))) {
|
||||||
dossierAttributePersistenceService.updateDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue());
|
dossierAttributePersistenceService.updateDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue());
|
||||||
} else {
|
} else {
|
||||||
dossierAttributePersistenceService.insertDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue());
|
dossierAttributePersistenceService.insertDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue());
|
||||||
@ -72,28 +73,31 @@ public class DossierAttributesController implements DossierAttributesResource {
|
|||||||
return convert(dossierAttributePersistenceService.findOne(dossierId, dossierAttribute.getDossierAttributeConfigId()), DossierAttribute.class);
|
return convert(dossierAttributePersistenceService.findOne(dossierId, dossierAttribute.getDossierAttributeConfigId()), DossierAttribute.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DossierAttribute> getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
public List<DossierAttribute> getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
||||||
|
|
||||||
return convert(dossierAttributePersistenceService.getDossierAttributes(dossierId), DossierAttribute.class);
|
return convert(dossierAttributePersistenceService.getDossierAttributes(dossierId), DossierAttribute.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) {
|
||||||
@PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) {
|
|
||||||
|
|
||||||
dossierAttributePersistenceService.deleteDossierAttribute(dossierId, dossierAttributeId);
|
dossierAttributePersistenceService.deleteDossierAttribute(dossierId, dossierAttributeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void validateDossierAttribute(Map<String, DossierAttributeType> typeById, DossierAttribute dossierAttribute ){
|
private void validateDossierAttribute(Map<String, DossierAttributeType> typeById, DossierAttribute dossierAttribute) {
|
||||||
|
|
||||||
if (!typeById.containsKey(dossierAttribute.getDossierAttributeConfigId())) {
|
if (!typeById.containsKey(dossierAttribute.getDossierAttributeConfigId())) {
|
||||||
throw new ConflictException("Dossier attribute configuration does not exist.");
|
throw new ConflictException("Dossier attribute configuration does not exist.");
|
||||||
}
|
}
|
||||||
|
|
||||||
DossierAttributeType type = typeById.get(dossierAttribute.getDossierAttributeConfigId());
|
DossierAttributeType type = typeById.get(dossierAttribute.getDossierAttributeConfigId());
|
||||||
if(type.equals(DossierAttributeType.IMAGE) && dossierAttribute.getValue() != null && !(dossierAttribute.getValue().startsWith("data:image/png;base64") || dossierAttribute.getValue().startsWith("data:image/jpg;base64") || dossierAttribute.getValue().startsWith("data:image/jpeg;base64"))){
|
if (type.equals(DossierAttributeType.IMAGE) && dossierAttribute.getValue() != null && !(dossierAttribute.getValue()
|
||||||
|
.startsWith("data:image/png;base64") || dossierAttribute.getValue().startsWith("data:image/jpg;base64") || dossierAttribute.getValue()
|
||||||
|
.startsWith("data:image/jpeg;base64"))) {
|
||||||
throw new BadRequestException("Only png, jpg and jpeg files are allowed for image dossier attributes");
|
throw new BadRequestException("Only png, jpg and jpeg files are allowed for image dossier attributes");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,7 +142,7 @@ public class DossierController implements DossierResource {
|
|||||||
DossierInformation dossierInformation = new DossierInformation();
|
DossierInformation dossierInformation = new DossierInformation();
|
||||||
|
|
||||||
var dossiers = dossierService.getAllDossiers();
|
var dossiers = dossierService.getAllDossiers();
|
||||||
if (filteredDossierIds != null && filteredDossierIds.size() > 0) {
|
if (filteredDossierIds != null && !filteredDossierIds.isEmpty()) {
|
||||||
dossiers = dossiers.stream().filter(d -> filteredDossierIds.contains(d.getId())).collect(Collectors.toList());
|
dossiers = dossiers.stream().filter(d -> filteredDossierIds.contains(d.getId())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
dossiers.forEach(d -> {
|
dossiers.forEach(d -> {
|
||||||
|
|||||||
@ -1,5 +1,15 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService;
|
import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.ExcludeFromAnalysisService;
|
import com.iqser.red.service.peristence.v1.server.service.ExcludeFromAnalysisService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||||
@ -7,20 +17,11 @@ import com.iqser.red.service.peristence.v1.server.service.IndexingService;
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource;
|
import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource;
|
||||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
import lombok.RequiredArgsConstructor;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -33,8 +34,7 @@ public class FileStatusController implements StatusResource {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
|
||||||
@RequestBody JSONPrimitive<OffsetDateTime> since) {
|
|
||||||
|
|
||||||
return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId, since.getValue()));
|
return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId, since.getValue()));
|
||||||
}
|
}
|
||||||
@ -43,50 +43,53 @@ public class FileStatusController implements StatusResource {
|
|||||||
@Override
|
@Override
|
||||||
public List<FileModel> getDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
public List<FileModel> getDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
||||||
|
|
||||||
return fileStatusService.getDossierStatus(dossierId).stream()
|
return fileStatusService.getDossierStatus(dossierId).stream().filter(f -> !f.isSoftOrHardDeleted()).collect(Collectors.toList());
|
||||||
.filter(f -> !f.isSoftOrHardDeleted())
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FileModel> getSoftDeletedDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
public List<FileModel> getSoftDeletedDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
||||||
return fileStatusService.getDossierStatus(dossierId).stream()
|
|
||||||
|
return fileStatusService.getDossierStatus(dossierId)
|
||||||
|
.stream()
|
||||||
.filter(f3 -> f3.getDeleted() != null && f3.getHardDeletedTime() == null)
|
.filter(f3 -> f3.getDeleted() != null && f3.getHardDeletedTime() == null)
|
||||||
.sorted((f11, f21) -> f21.getDeleted().compareTo(f11.getDeleted())).collect(Collectors.toList());
|
.sorted((f11, f21) -> f21.getDeleted().compareTo(f11.getDeleted()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<FileModel> getSoftDeletedForDossierList(@RequestBody List<String> dossierIds) {
|
public List<FileModel> getSoftDeletedForDossierList(@RequestBody List<String> dossierIds) {
|
||||||
|
|
||||||
return fileStatusService.getSoftDeletedForDossierList(dossierIds);
|
return fileStatusService.getSoftDeletedForDossierList(dossierIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
||||||
@PathVariable(FILE_ID) String fileId) {
|
|
||||||
return fileStatusService.getStatus(fileId);
|
return fileStatusService.getStatus(fileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
||||||
@PathVariable(FILE_ID) String fileId) {
|
|
||||||
this.fileStatusService.updateFileModificationDate(fileId, OffsetDateTime.now());
|
this.fileStatusService.updateFileModificationDate(fileId, OffsetDateTime.now());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
|
||||||
@RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) {
|
@RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) {
|
||||||
|
|
||||||
fileStatusService.setAssignee(fileId, assigneeId);
|
fileStatusService.setAssignee(fileId, assigneeId);
|
||||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
|
||||||
@RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId) {
|
@RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId) {
|
||||||
|
|
||||||
|
|
||||||
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
||||||
String assignee = fileStatus.getAssignee();
|
String assignee = fileStatus.getAssignee();
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
@ -98,8 +101,8 @@ public class FileStatusController implements StatusResource {
|
|||||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
|
||||||
@PathVariable(FILE_ID) String fileId,
|
public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
@RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) {
|
@RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) {
|
||||||
|
|
||||||
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
||||||
@ -108,14 +111,14 @@ public class FileStatusController implements StatusResource {
|
|||||||
assignee = approverId;
|
assignee = approverId;
|
||||||
|
|
||||||
}
|
}
|
||||||
fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW);
|
fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW);
|
||||||
fileStatusService.setAssignee(fileId, approverId);
|
fileStatusService.setAssignee(fileId, approverId);
|
||||||
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
||||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
|
||||||
@PathVariable(FILE_ID) String fileId,
|
public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
@RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) {
|
@RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) {
|
||||||
|
|
||||||
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
||||||
@ -132,7 +135,9 @@ public class FileStatusController implements StatusResource {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setStatusNew(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
public void setStatusNew(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
||||||
|
|
||||||
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
FileModel fileStatus = fileStatusService.getStatus(fileId);
|
||||||
if (!WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) {
|
if (!WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) {
|
||||||
throw new BadRequestException("Allowed transition not possible from: " + fileStatus.getWorkflowStatus() + " to status NEW");
|
throw new BadRequestException("Allowed transition not possible from: " + fileStatus.getWorkflowStatus() + " to status NEW");
|
||||||
@ -141,15 +146,16 @@ public class FileStatusController implements StatusResource {
|
|||||||
fileStatusService.setStatusSuccessful(fileId, WorkflowStatus.NEW);
|
fileStatusService.setStatusSuccessful(fileId, WorkflowStatus.NEW);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
|
||||||
@PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded) {
|
public void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded) {
|
||||||
|
|
||||||
excludeFromAnalysis.toggleExclusion(dossierId, fileId, excluded);
|
excludeFromAnalysis.toggleExclusion(dossierId, fileId, excluded);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
|
||||||
@PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) {
|
public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) {
|
||||||
|
|
||||||
excludeFromAnalysis.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis);
|
excludeFromAnalysis.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis);
|
||||||
|
|
||||||
|
|||||||
@ -1,21 +1,22 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
|
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPreferencesPersistenceService;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest;
|
import java.time.OffsetDateTime;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
import java.util.List;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
|
||||||
import java.util.List;
|
import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource;
|
||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -23,17 +24,21 @@ public class NotificationController implements NotificationResource {
|
|||||||
|
|
||||||
private final NotificationPersistenceService notificationPersistenceService;
|
private final NotificationPersistenceService notificationPersistenceService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONPrimitive<Boolean> hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
|
public JSONPrimitive<Boolean> hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
|
||||||
|
|
||||||
return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since.getValue()));
|
return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void addNotification(@RequestBody AddNotificationRequest addNotificationRequest) {
|
public void addNotification(@RequestBody AddNotificationRequest addNotificationRequest) {
|
||||||
|
|
||||||
notificationPersistenceService.insertNotification(addNotificationRequest);
|
notificationPersistenceService.insertNotification(addNotificationRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds,
|
|
||||||
@RequestParam(SET_SEEN_PARAM) boolean setSeen) {
|
public void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds, @RequestParam(SET_SEEN_PARAM) boolean setSeen) {
|
||||||
|
|
||||||
notificationIds.forEach(notificationId -> {
|
notificationIds.forEach(notificationId -> {
|
||||||
if (setSeen) {
|
if (setSeen) {
|
||||||
@ -45,8 +50,7 @@ public class NotificationController implements NotificationResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds,
|
public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds, @RequestParam(SET_READ_PARAM) boolean setRead) {
|
||||||
@RequestParam(SET_READ_PARAM) boolean setRead) {
|
|
||||||
|
|
||||||
notificationIds.forEach(notificationId -> {
|
notificationIds.forEach(notificationId -> {
|
||||||
if (setRead) {
|
if (setRead) {
|
||||||
@ -67,8 +71,7 @@ public class NotificationController implements NotificationResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<Notification> getNotifications(@PathVariable(USER_ID_PARAM) String userId,
|
public List<Notification> getNotifications(@PathVariable(USER_ID_PARAM) String userId, @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) {
|
||||||
@RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) {
|
|
||||||
|
|
||||||
return convert(notificationPersistenceService.getNotifications(userId, includeSeen), Notification.class);
|
return convert(notificationPersistenceService.getNotifications(userId, includeSeen), Notification.class);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,9 +69,7 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
|
|
||||||
var relevantFiles = getAllFilesForDossier(dossierId, true);
|
var relevantFiles = getAllFilesForDossier(dossierId, true);
|
||||||
|
|
||||||
relevantFiles.stream()
|
relevantFiles.stream().filter(fileStatus -> fileStatus.getLastOCRTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
|
||||||
.filter(fileStatus -> fileStatus.getLastOCRTime() == null)
|
|
||||||
.forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -79,9 +77,7 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
|
|
||||||
var relevantFiles = getRelevantFiles(dossierId, fileIds);
|
var relevantFiles = getRelevantFiles(dossierId, fileIds);
|
||||||
|
|
||||||
relevantFiles.stream()
|
relevantFiles.stream().filter(fileStatus -> fileStatus.getLastOCRTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
|
||||||
.filter(fileStatus -> fileStatus.getLastOCRTime() == null)
|
|
||||||
.forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -121,7 +117,8 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
|
|
||||||
var importedRedactions = fileManagementStorageService.getImportedRedactions(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId());
|
var importedRedactions = fileManagementStorageService.getImportedRedactions(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId());
|
||||||
importedRedactions.getImportedRedactions().forEach((key, value) -> value.removeIf(v -> deleteImportedRedactionsRequest.getAnnotationIds().contains(v.getId())));
|
importedRedactions.getImportedRedactions().forEach((key, value) -> value.removeIf(v -> deleteImportedRedactionsRequest.getAnnotationIds().contains(v.getId())));
|
||||||
fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), FileType.IMPORTED_REDACTIONS, importedRedactions);
|
fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), FileType.IMPORTED_REDACTIONS,
|
||||||
|
importedRedactions);
|
||||||
fileStatusService.setStatusFullReprocess(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), true, false);
|
fileStatusService.setStatusFullReprocess(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,9 +193,9 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true);
|
fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
filesToReanalyse.stream().filter(FileModel::isReanalysisRequired).forEach(file -> {
|
filesToReanalyse.stream()
|
||||||
fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true);
|
.filter(FileModel::isReanalysisRequired)
|
||||||
});
|
.forEach(file -> fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
@ -32,14 +31,15 @@ public class RedactionLogController implements RedactionLogResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
||||||
@PathVariable(FILE_ID) String fileId) {
|
|
||||||
|
|
||||||
return redactionLogService.getSectionGrid(dossierId, fileId);
|
return redactionLogService.getSectionGrid(dossierId, fileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest) {
|
@RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest) {
|
||||||
|
|
||||||
return redactionLogService.getFilteredRedactionLog(dossierId, fileId, filteredRedactionLogRequest);
|
return redactionLogService.getFilteredRedactionLog(dossierId, fileId, filteredRedactionLogRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,28 +7,23 @@ import java.io.IOException;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
|
import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
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.management.v1.processor.service.persistence.ReportTemplatePersistenceService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource;
|
import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource;
|
||||||
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
|
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
|
|
||||||
import lombok.NonNull;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -42,55 +37,47 @@ public class ReportTemplateController implements ReportTemplateResource {
|
|||||||
public ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest) {
|
public ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest) {
|
||||||
|
|
||||||
String templateId = null;
|
String templateId = null;
|
||||||
List<ReportTemplateEntity> reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest
|
List<ReportTemplateEntity> reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest.getDossierTemplateId());
|
||||||
.getDossierTemplateId());
|
|
||||||
for (ReportTemplateEntity reportTemplate : reportTemplates) {
|
for (ReportTemplateEntity reportTemplate : reportTemplates) {
|
||||||
if (reportTemplate.getFileName()
|
if (reportTemplate.getFileName()
|
||||||
.equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest
|
.equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest.isMultiFileReport() || reportTemplate.getFileName()
|
||||||
.isMultiFileReport() || reportTemplate.getFileName()
|
.equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest.isMultiFileReport()) {
|
||||||
.equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest
|
|
||||||
.isMultiFileReport()) {
|
|
||||||
templateId = reportTemplate.getTemplateId();
|
templateId = reportTemplate.getTemplateId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest
|
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest.getFileName());
|
||||||
.getFileName());
|
|
||||||
storageService.storeObject(storageId, new ByteArrayInputStream(reportTemplateUploadRequest.getTemplate()));
|
storageService.storeObject(storageId, new ByteArrayInputStream(reportTemplateUploadRequest.getTemplate()));
|
||||||
|
|
||||||
if (templateId != null) {
|
if (templateId != null) {
|
||||||
reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest
|
reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest.builder()
|
||||||
.builder()
|
|
||||||
.fileName(reportTemplateUploadRequest.getFileName())
|
.fileName(reportTemplateUploadRequest.getFileName())
|
||||||
.multiFileReport(reportTemplateUploadRequest.isMultiFileReport())
|
.multiFileReport(reportTemplateUploadRequest.isMultiFileReport())
|
||||||
.activeByDefault(reportTemplateUploadRequest.isActiveByDefault())
|
.activeByDefault(reportTemplateUploadRequest.isActiveByDefault())
|
||||||
.build());
|
.build());
|
||||||
} else {
|
} else {
|
||||||
templateId = UUID.randomUUID().toString();
|
templateId = UUID.randomUUID().toString();
|
||||||
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest
|
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest.getFileName(),
|
||||||
.getFileName(), reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport());
|
reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport());
|
||||||
}
|
}
|
||||||
|
|
||||||
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
|
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<ReportTemplate> getAvailableReportTemplates(
|
public List<ReportTemplate> getAvailableReportTemplates(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
|
||||||
@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
|
|
||||||
|
|
||||||
return convert(reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId), ReportTemplate.class);
|
return convert(reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId), ReportTemplate.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
|
||||||
@PathVariable(TEMPLATE_ID) String templateId) {
|
|
||||||
|
|
||||||
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
|
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
|
||||||
@PathVariable(TEMPLATE_ID) String templateId) {
|
|
||||||
|
|
||||||
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
|
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
|
||||||
try {
|
try {
|
||||||
@ -102,8 +89,7 @@ public class ReportTemplateController implements ReportTemplateResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
|
||||||
@PathVariable(TEMPLATE_ID) String templateId) {
|
|
||||||
|
|
||||||
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
|
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
|
||||||
storageService.deleteObject(storageId);
|
storageService.deleteObject(storageId);
|
||||||
@ -112,8 +98,7 @@ public class ReportTemplateController implements ReportTemplateResource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId,
|
||||||
@PathVariable(TEMPLATE_ID) String templateId,
|
|
||||||
@RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) {
|
@RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) {
|
||||||
|
|
||||||
reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest);
|
reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest);
|
||||||
|
|||||||
@ -1,16 +1,20 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
|
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource;
|
import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -20,24 +24,32 @@ public class WatermarkController implements WatermarkResource {
|
|||||||
|
|
||||||
|
|
||||||
public Watermark createOrUpdateWatermark(@RequestBody Watermark watermark) {
|
public Watermark createOrUpdateWatermark(@RequestBody Watermark watermark) {
|
||||||
|
|
||||||
return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class);
|
return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
public Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
||||||
|
|
||||||
return convert(watermarkService.getWatermark(watermarkId), Watermark.class);
|
return convert(watermarkService.getWatermark(watermarkId), Watermark.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Watermark> getWatermarksForDossierTemplateId(@RequestParam(value = DOSSIER_TEMPLATE_ID_PARAMETER_NAME) String dossierTemplateId) {
|
public List<Watermark> getWatermarksForDossierTemplateId(@RequestParam(value = DOSSIER_TEMPLATE_ID_PARAMETER_NAME) String dossierTemplateId) {
|
||||||
|
|
||||||
return convert(watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId), Watermark.class);
|
return convert(watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId), Watermark.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
||||||
|
|
||||||
watermarkService.deleteWatermark(watermarkId);
|
watermarkService.deleteWatermark(watermarkId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public JSONPrimitive<Boolean> isWatermarkUsed(@RequestParam(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
public JSONPrimitive<Boolean> isWatermarkUsed(@RequestParam(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
|
||||||
|
|
||||||
return JSONPrimitive.of(watermarkService.isWatermarkUsed(watermarkId));
|
return JSONPrimitive.of(watermarkService.isWatermarkUsed(watermarkId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,27 +53,15 @@ public class EntityTypesMigration4 extends Migration {
|
|||||||
if (type != null) {
|
if (type != null) {
|
||||||
|
|
||||||
// Check if type is systemManaged
|
// Check if type is systemManaged
|
||||||
if (type.getType() != null && systemManagedTypes.contains(type.getType())) {
|
type.setSystemManaged(type.getType() != null && systemManagedTypes.contains(type.getType()));
|
||||||
type.setSystemManaged(true);
|
|
||||||
} else {
|
|
||||||
type.setSystemManaged(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if type is autoHideSkipped
|
// Check if type is autoHideSkipped
|
||||||
if (type.getType() != null && autoHideSkippedTypes.contains(type.getType())) {
|
type.setAutoHideSkipped(type.getType() != null && autoHideSkippedTypes.contains(type.getType()));
|
||||||
type.setAutoHideSkipped(true);
|
|
||||||
} else {
|
|
||||||
type.setAutoHideSkipped(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if type has dictionaries
|
// Check if type has dictionaries
|
||||||
List<? extends BaseDictionaryEntry> entries = entryPersistenceService.getEntries(type.getId(), DictionaryEntryType.ENTRY, null);
|
List<? extends BaseDictionaryEntry> entries = entryPersistenceService.getEntries(type.getId(), DictionaryEntryType.ENTRY, null);
|
||||||
|
|
||||||
if (entries != null && !entries.isEmpty()) {
|
type.setHasDictionary(entries != null && !entries.isEmpty());
|
||||||
type.setHasDictionary(true);
|
|
||||||
} else {
|
|
||||||
type.setHasDictionary(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,14 +62,14 @@ public class RedTextPosition {
|
|||||||
@JsonAttribute()
|
@JsonAttribute()
|
||||||
public float[] getPosition() {
|
public float[] getPosition() {
|
||||||
|
|
||||||
var position = new float[4];
|
var pos = new float[4];
|
||||||
|
|
||||||
position[0] = XDirAdj;
|
pos[0] = XDirAdj;
|
||||||
position[1] = YDirAdj;
|
pos[1] = YDirAdj;
|
||||||
position[2] = widthDirAdj;
|
pos[2] = widthDirAdj;
|
||||||
position[3] = heightDir;
|
pos[3] = heightDir;
|
||||||
|
|
||||||
return position;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ public class MasterPersistenceConfig {
|
|||||||
|
|
||||||
private final ConfigurableListableBeanFactory beanFactory;
|
private final ConfigurableListableBeanFactory beanFactory;
|
||||||
private final JpaProperties jpaProperties;
|
private final JpaProperties jpaProperties;
|
||||||
private final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.multitenancy.entity";
|
private static final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.multitenancy.entity";
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -39,7 +39,7 @@ public class TenantPersistenceConfig {
|
|||||||
|
|
||||||
private final ConfigurableListableBeanFactory beanFactory;
|
private final ConfigurableListableBeanFactory beanFactory;
|
||||||
private final JpaProperties jpaProperties;
|
private final JpaProperties jpaProperties;
|
||||||
private final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.entity";
|
private static final String entityPackages = "com.iqser.red.service.persistence.management.v1.processor.entity";
|
||||||
|
|
||||||
|
|
||||||
@Primary
|
@Primary
|
||||||
|
|||||||
@ -1,18 +1,20 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.service;
|
package com.iqser.red.service.peristence.v1.server.service;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@ -24,7 +26,6 @@ public class DossierStatsService {
|
|||||||
|
|
||||||
// private Map<String, DossierStats> dossierStatsMap = new HashMap<>();
|
// private Map<String, DossierStats> dossierStatsMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
// @Scheduled(fixedDelay = 10000, initialDelay = 1000)
|
// @Scheduled(fixedDelay = 10000, initialDelay = 1000)
|
||||||
// public void computeDossierStats() {
|
// public void computeDossierStats() {
|
||||||
// log.info("Computing Dossier Stats ... ");
|
// log.info("Computing Dossier Stats ... ");
|
||||||
@ -38,6 +39,7 @@ public class DossierStatsService {
|
|||||||
// log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start);
|
// log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
public DossierStats getDossierStats(String dossierId) {
|
public DossierStats getDossierStats(String dossierId) {
|
||||||
// var stats = dossierStatsMap.get(dossierId);
|
// var stats = dossierStatsMap.get(dossierId);
|
||||||
// if (stats == null) {
|
// if (stats == null) {
|
||||||
@ -47,7 +49,9 @@ public class DossierStatsService {
|
|||||||
return computeDossierStats(dossierService.getDossierById(dossierId));
|
return computeDossierStats(dossierService.getDossierById(dossierId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private DossierStats computeDossierStats(DossierEntity dossierEntity) {
|
private DossierStats computeDossierStats(DossierEntity dossierEntity) {
|
||||||
|
|
||||||
var dossierId = dossierEntity.getId();
|
var dossierId = dossierEntity.getId();
|
||||||
|
|
||||||
DossierStats dossierStats = new DossierStats();
|
DossierStats dossierStats = new DossierStats();
|
||||||
@ -63,36 +67,32 @@ public class DossierStatsService {
|
|||||||
dossierStats.setNumberOfSoftDeletedFiles(fileStatusService.countSoftDeletedFiles(dossierId));
|
dossierStats.setNumberOfSoftDeletedFiles(fileStatusService.countSoftDeletedFiles(dossierId));
|
||||||
dossierStats.setNumberOfPages(files.stream().mapToInt(FileModel::getNumberOfPages).sum());
|
dossierStats.setNumberOfPages(files.stream().mapToInt(FileModel::getNumberOfPages).sum());
|
||||||
dossierStats.setNumberOfExcludedPages(files.stream().mapToInt(f -> f.getExcludedPages().size()).sum());
|
dossierStats.setNumberOfExcludedPages(files.stream().mapToInt(f -> f.getExcludedPages().size()).sum());
|
||||||
files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent(
|
files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent(v -> dossierStats.setHasRedactionsFilePresent(true));
|
||||||
(v) -> dossierStats.setHasRedactionsFilePresent(true)
|
files.stream().filter(FileModel::isHasHints).filter(f -> !f.isHasRedactions()).findAny().ifPresent(v -> dossierStats.setHasHintsNoRedactionsFilePresent(true));
|
||||||
);
|
files.stream().filter(FileModel::isHasSuggestions).findAny().ifPresent(v -> dossierStats.setHasSuggestionsFilePresent(true));
|
||||||
files.stream().filter(FileModel::isHasHints).filter(f -> !f.isHasRedactions()).findAny().ifPresent(
|
files.stream().filter(FileModel::isHasUpdates).findAny().ifPresent(v -> dossierStats.setHasUpdatesFilePresent(true));
|
||||||
(v) -> dossierStats.setHasHintsNoRedactionsFilePresent(true)
|
files.stream()
|
||||||
);
|
.filter(f -> !f.isHasRedactions())
|
||||||
files.stream().filter(FileModel::isHasSuggestions).findAny().ifPresent(
|
|
||||||
(v) -> dossierStats.setHasSuggestionsFilePresent(true)
|
|
||||||
);
|
|
||||||
files.stream().filter(FileModel::isHasUpdates).findAny().ifPresent(
|
|
||||||
(v) -> dossierStats.setHasUpdatesFilePresent(true)
|
|
||||||
);
|
|
||||||
files.stream().filter(f -> !f.isHasRedactions())
|
|
||||||
.filter(f -> !f.isHasHints())
|
.filter(f -> !f.isHasHints())
|
||||||
.filter(f -> !f.isHasSuggestions())
|
.filter(f -> !f.isHasSuggestions())
|
||||||
.filter(f -> !f.isHasUpdates())
|
.filter(f -> !f.isHasUpdates())
|
||||||
.findAny().ifPresent(
|
.findAny()
|
||||||
(v) -> dossierStats.setHasNoFlagsFilePresent(true)
|
.ifPresent(v -> dossierStats.setHasNoFlagsFilePresent(true));
|
||||||
);
|
|
||||||
var fileCountPerProcessingStatus = files.stream().collect(Collectors.toMap(FileModel::getProcessingStatus, e -> 1, Math::addExact));
|
var fileCountPerProcessingStatus = files.stream().collect(Collectors.toMap(FileModel::getProcessingStatus, e -> 1, Math::addExact));
|
||||||
dossierStats.setFileCountPerProcessingStatus(fileCountPerProcessingStatus);
|
dossierStats.setFileCountPerProcessingStatus(fileCountPerProcessingStatus);
|
||||||
|
|
||||||
var fileCountPerWorkflowStatus = files.stream().collect(Collectors.toMap(FileModel::getWorkflowStatus, e -> 1, Math::addExact));
|
var fileCountPerWorkflowStatus = files.stream().collect(Collectors.toMap(FileModel::getWorkflowStatus, e -> 1, Math::addExact));
|
||||||
dossierStats.setFileCountPerWorkflowStatus(fileCountPerWorkflowStatus);
|
dossierStats.setFileCountPerWorkflowStatus(fileCountPerWorkflowStatus);
|
||||||
|
|
||||||
|
files.stream()
|
||||||
files.stream().sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder())))
|
.sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder())))
|
||||||
.findFirst().ifPresent((file) -> dossierStats.setLastFileUpdateDate(file.getLastUpdated()));
|
.findFirst()
|
||||||
files.stream().sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder())))
|
.ifPresent(file -> dossierStats.setLastFileUpdateDate(file.getLastUpdated()));
|
||||||
.findFirst().ifPresent((file) -> dossierStats.setFileManipulationDate(file.getFileManipulationDate()));
|
files.stream()
|
||||||
|
.sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder())))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(file -> dossierStats.setFileManipulationDate(file.getFileManipulationDate()));
|
||||||
return dossierStats;
|
return dossierStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -95,51 +95,39 @@ public class FileService {
|
|||||||
forceRedactionPersistenceService.findForceRedactions(fileId, false).forEach(annotation -> {
|
forceRedactionPersistenceService.findForceRedactions(fileId, false).forEach(annotation -> {
|
||||||
forceRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
forceRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
removeRedactionPersistenceService.findRemoveRedactions(fileId, false).forEach(annotation -> {
|
removeRedactionPersistenceService.findRemoveRedactions(fileId, false).forEach(annotation -> {
|
||||||
removeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
removeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
addRedactionPersistenceService.findAddRedactions(fileId, false).forEach(annotation -> {
|
addRedactionPersistenceService.findAddRedactions(fileId, false).forEach(annotation -> {
|
||||||
addRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
addRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
recategorizationPersistenceService.findRecategorizations(fileId, false).forEach(recatigorization -> {
|
recategorizationPersistenceService.findRecategorizations(fileId, false).forEach(recatigorization -> {
|
||||||
recategorizationPersistenceService.softDelete(fileId, recatigorization.getId()
|
recategorizationPersistenceService.softDelete(fileId, recatigorization.getId()
|
||||||
.getAnnotationId(), softDeletedTime);
|
.getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
|
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
|
||||||
.getAnnotationId(), false).forEach(comment -> {
|
.getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
resizeRedactionPersistenceService.findResizeRedactions(fileId, false).forEach(annotation -> {
|
resizeRedactionPersistenceService.findResizeRedactions(fileId, false).forEach(annotation -> {
|
||||||
resizeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
resizeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false).forEach(legalBasisChange -> {
|
legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false).forEach(legalBasisChange -> {
|
||||||
legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId()
|
legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId()
|
||||||
.getAnnotationId(), softDeletedTime);
|
.getAnnotationId(), softDeletedTime);
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId()
|
commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId()
|
||||||
.getAnnotationId(), false).forEach(comment -> {
|
.getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
|
||||||
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
viewedPagesPersistenceService.deleteForFile(fileId);
|
viewedPagesPersistenceService.deleteForFile(fileId);
|
||||||
@ -160,41 +148,31 @@ public class FileService {
|
|||||||
forceRedactionPersistenceService.findForceRedactions(fileId, true).forEach(annotation -> {
|
forceRedactionPersistenceService.findForceRedactions(fileId, true).forEach(annotation -> {
|
||||||
forceRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
forceRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
|
||||||
commentPersistenceService.hardDelete(comment.getId());
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
removeRedactionPersistenceService.findRemoveRedactions(fileId, true).forEach(annotation -> {
|
removeRedactionPersistenceService.findRemoveRedactions(fileId, true).forEach(annotation -> {
|
||||||
removeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
removeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
|
||||||
commentPersistenceService.hardDelete(comment.getId());
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
addRedactionPersistenceService.findAddRedactions(fileId, true).forEach(annotation -> {
|
addRedactionPersistenceService.findAddRedactions(fileId, true).forEach(annotation -> {
|
||||||
addRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
addRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
|
||||||
commentPersistenceService.hardDelete(comment.getId());
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> {
|
recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> {
|
||||||
recategorizationPersistenceService.hardDelete(fileId, recatigorization.getId().getAnnotationId());
|
recategorizationPersistenceService.hardDelete(fileId, recatigorization.getId().getAnnotationId());
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
|
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
|
||||||
.getAnnotationId(), true).forEach(comment -> {
|
.getAnnotationId(), true).forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
|
||||||
commentPersistenceService.hardDelete(comment.getId());
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> {
|
resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> {
|
||||||
resizeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
resizeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
|
||||||
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
|
||||||
.forEach(comment -> {
|
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
|
||||||
commentPersistenceService.hardDelete(comment.getId());
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
indexingService.addToDeleteFromIndexQueue(dossierId, fileId, 2);
|
indexingService.addToDeleteFromIndexQueue(dossierId, fileId, 2);
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,6 @@ import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfigu
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
|
||||||
import com.iqser.red.service.search.v1.model.IndexMessage;
|
import com.iqser.red.service.search.v1.model.IndexMessage;
|
||||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||||
|
|
||||||
@ -70,12 +69,8 @@ public class IndexingService {
|
|||||||
public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) {
|
public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
|
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(
|
||||||
.messageType(indexMessageType)
|
IndexMessage.builder().messageType(indexMessageType).dossierTemplateId(dossierTemplateId).dossierId(dossierId).fileId(fileId).build()), message -> {
|
||||||
.dossierTemplateId(dossierTemplateId)
|
|
||||||
.dossierId(dossierId)
|
|
||||||
.fileId(fileId)
|
|
||||||
.build()), message -> {
|
|
||||||
message.getMessageProperties().setPriority(priority);
|
message.getMessageProperties().setPriority(priority);
|
||||||
return message;
|
return message;
|
||||||
});
|
});
|
||||||
@ -88,13 +83,11 @@ public class IndexingService {
|
|||||||
public void addToDeleteFromIndexQueue(String dossierId, String fileId, int priority) {
|
public void addToDeleteFromIndexQueue(String dossierId, String fileId, int priority) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
|
rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE,
|
||||||
.dossierId(dossierId)
|
objectMapper.writeValueAsString(IndexMessage.builder().dossierId(dossierId).fileId(fileId).build()), message -> {
|
||||||
.fileId(fileId)
|
message.getMessageProperties().setPriority(priority);
|
||||||
.build()), message -> {
|
return message;
|
||||||
message.getMessageProperties().setPriority(priority);
|
});
|
||||||
return message;
|
|
||||||
});
|
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,18 +61,18 @@ public class ManualRedactionProviderService {
|
|||||||
|
|
||||||
Set<ManualForceRedaction> forceRedactions = convert(forceRedactionPersistenceService.findForceRedactions(fileId, false), ManualForceRedaction.class);
|
Set<ManualForceRedaction> forceRedactions = convert(forceRedactionPersistenceService.findForceRedactions(fileId, false), ManualForceRedaction.class);
|
||||||
|
|
||||||
Set<ManualImageRecategorization> recategorizations = new HashSet<>(convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper()));
|
Set<ManualImageRecategorization> recategorizations = new HashSet<>(
|
||||||
|
convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper()));
|
||||||
|
|
||||||
Set<ManualLegalBasisChange> legalBasisChanges = convert(legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false), ManualLegalBasisChange.class);
|
Set<ManualLegalBasisChange> legalBasisChanges = convert(legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false), ManualLegalBasisChange.class);
|
||||||
|
|
||||||
Set<ManualResizeRedaction> resizeRedactions = new HashSet<>(convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), ManualResizeRedaction.class, new ManualResizeRedactionMapper()));
|
Set<ManualResizeRedaction> resizeRedactions = new HashSet<>(
|
||||||
|
convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), ManualResizeRedaction.class, new ManualResizeRedactionMapper()));
|
||||||
|
|
||||||
Map<String, List<CommentEntity>> commentEntities = commentPersistenceService.findCommentsByFileID(fileId, false);
|
Map<String, List<CommentEntity>> commentEntities = commentPersistenceService.findCommentsByFileID(fileId, false);
|
||||||
|
|
||||||
Map<String, List<Comment>> comments = new HashMap<>();
|
Map<String, List<Comment>> comments = new HashMap<>();
|
||||||
commentEntities.forEach((s, c) -> {
|
commentEntities.forEach((s, c) -> comments.put(s, convert(c, Comment.class)));
|
||||||
comments.put(s, convert(c, Comment.class));
|
|
||||||
});
|
|
||||||
|
|
||||||
return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments);
|
return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -172,7 +172,7 @@ public class ManualRedactionService {
|
|||||||
.stream()
|
.stream()
|
||||||
.filter(p -> p.getPage() > numberOfPages)
|
.filter(p -> p.getPage() > numberOfPages)
|
||||||
.findAny()
|
.findAny()
|
||||||
.ifPresent((p) -> new BadRequestException("Invalid page found in the request"));
|
.ifPresent(p -> new BadRequestException("Invalid page found in the request"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,9 @@ package com.iqser.red.service.peristence.v1.server.utils;
|
|||||||
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
||||||
|
|
||||||
public class StorageIdUtils {
|
public final class StorageIdUtils {
|
||||||
|
|
||||||
|
private StorageIdUtils() {}
|
||||||
|
|
||||||
public static String getStorageId(String dossierId, String fileId, FileType fileType) {
|
public static String getStorageId(String dossierId, String fileId, FileType fileType) {
|
||||||
return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension();
|
return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user