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:
Ali Oezyetimoglu 2022-09-05 17:29:48 +02:00 committed by Philipp Schramm
commit 9ab04acece
19 changed files with 196 additions and 228 deletions

View File

@ -113,7 +113,7 @@ public class DossierTemplateCloneService {
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;

View File

@ -1,7 +1,16 @@
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.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.ConflictException;
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.DossierAttributeType;
import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource;
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
@RequiredArgsConstructor
@ -31,8 +31,7 @@ public class DossierAttributesController implements DossierAttributesResource {
@Override
public List<DossierAttribute> setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody List<DossierAttribute> dossierAttributes) {
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());
@ -51,9 +50,9 @@ public class DossierAttributesController implements DossierAttributesResource {
return getDossierAttributes(dossierId);
}
@Override
public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody DossierAttribute dossierAttribute) {
public DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody DossierAttribute dossierAttribute) {
var dossier = dossierService.getDossierById(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()));
validateDossierAttribute(typeById, dossierAttribute);
if (dossierAttributes.stream().anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId())
&& d.getId().getDossierAttributeConfigId().equals(dossierAttribute.getDossierAttributeConfigId()))) {
if (dossierAttributes.stream()
.anyMatch(d -> d.getId().getDossierId().equals(dossierAttribute.getDossierId()) && d.getId()
.getDossierAttributeConfigId()
.equals(dossierAttribute.getDossierAttributeConfigId()))) {
dossierAttributePersistenceService.updateDossierAttribute(dossierId, dossierAttribute.getDossierAttributeConfigId(), dossierAttribute.getValue());
} else {
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);
}
@Override
public List<DossierAttribute> getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
return convert(dossierAttributePersistenceService.getDossierAttributes(dossierId), DossierAttribute.class);
}
@Override
public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId) {
public void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String 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())) {
throw new ConflictException("Dossier attribute configuration does not exist.");
}
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");
}
}

View File

@ -142,7 +142,7 @@ public class DossierController implements DossierResource {
DossierInformation dossierInformation = new DossierInformation();
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.forEach(d -> {

View File

@ -1,5 +1,15 @@
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.ExcludeFromAnalysisService;
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.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.ProcessingStatus;
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.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 java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
@RestController
@RequiredArgsConstructor
@ -33,8 +34,7 @@ public class FileStatusController implements StatusResource {
@Override
public JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestBody JSONPrimitive<OffsetDateTime> since) {
public JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId, since.getValue()));
}
@ -43,50 +43,53 @@ public class FileStatusController implements StatusResource {
@Override
public List<FileModel> getDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
return fileStatusService.getDossierStatus(dossierId).stream()
.filter(f -> !f.isSoftOrHardDeleted())
.collect(Collectors.toList());
return fileStatusService.getDossierStatus(dossierId).stream().filter(f -> !f.isSoftOrHardDeleted()).collect(Collectors.toList());
}
@Override
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)
.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) {
return fileStatusService.getSoftDeletedForDossierList(dossierIds);
}
@Override
public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(FILE_ID) String fileId) {
public FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
return fileStatusService.getStatus(fileId);
}
@Override
public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(FILE_ID) String fileId) {
public void updateFileModificationDate(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
this.fileStatusService.updateFileModificationDate(fileId, OffsetDateTime.now());
}
@Override
public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(FILE_ID) String fileId,
public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
@RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) {
fileStatusService.setAssignee(fileId, assigneeId);
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
}
public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@PathVariable(FILE_ID) String fileId,
public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
@RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId) {
FileModel fileStatus = fileStatusService.getStatus(fileId);
String assignee = fileStatus.getAssignee();
if (userId != null) {
@ -98,8 +101,8 @@ public class FileStatusController implements StatusResource {
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) {
FileModel fileStatus = fileStatusService.getStatus(fileId);
@ -108,14 +111,14 @@ public class FileStatusController implements StatusResource {
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);
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
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) {
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) {
FileModel fileStatus = fileStatusService.getStatus(fileId);
if (!WorkflowStatus.UNDER_REVIEW.equals(fileStatus.getWorkflowStatus())) {
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);
}
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);
}
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);

View File

@ -1,21 +1,22 @@
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPreferencesPersistenceService;
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 lombok.RequiredArgsConstructor;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import java.time.OffsetDateTime;
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 java.time.OffsetDateTime;
import java.util.List;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService;
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
@RequiredArgsConstructor
@ -23,17 +24,21 @@ public class NotificationController implements NotificationResource {
private final NotificationPersistenceService notificationPersistenceService;
@Override
public JSONPrimitive<Boolean> hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since.getValue()));
}
public void addNotification(@RequestBody AddNotificationRequest 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 -> {
if (setSeen) {
@ -45,8 +50,7 @@ public class NotificationController implements NotificationResource {
}
public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds,
@RequestParam(SET_READ_PARAM) boolean setRead) {
public void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List<Long> notificationIds, @RequestParam(SET_READ_PARAM) boolean setRead) {
notificationIds.forEach(notificationId -> {
if (setRead) {
@ -67,8 +71,7 @@ public class NotificationController implements NotificationResource {
}
public List<Notification> getNotifications(@PathVariable(USER_ID_PARAM) String userId,
@RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) {
public List<Notification> getNotifications(@PathVariable(USER_ID_PARAM) String userId, @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen) {
return convert(notificationPersistenceService.getNotifications(userId, includeSeen), Notification.class);
}

View File

@ -69,9 +69,7 @@ public class ReanalysisController implements ReanalysisResource {
var relevantFiles = getAllFilesForDossier(dossierId, true);
relevantFiles.stream()
.filter(fileStatus -> fileStatus.getLastOCRTime() == null)
.forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
relevantFiles.stream().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);
relevantFiles.stream()
.filter(fileStatus -> fileStatus.getLastOCRTime() == null)
.forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId()));
relevantFiles.stream().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());
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);
}
@ -196,9 +193,9 @@ public class ReanalysisController implements ReanalysisResource {
fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true);
});
} else {
filesToReanalyse.stream().filter(FileModel::isReanalysisRequired).forEach(file -> {
fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true);
});
filesToReanalyse.stream()
.filter(FileModel::isReanalysisRequired)
.forEach(file -> fileStatusService.setStatusReprocess(dossierId, file.getId(), filesToReanalyse.size() == 1, true));
}
}

View File

@ -1,6 +1,5 @@
package com.iqser.red.service.peristence.v1.server.controller;
import java.time.OffsetDateTime;
import java.util.List;
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,
@PathVariable(FILE_ID) String fileId) {
public SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) {
return redactionLogService.getSectionGrid(dossierId, fileId);
}
public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
@RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest) {
return redactionLogService.getFilteredRedactionLog(dossierId, fileId, filteredRedactionLogRequest);
}

View File

@ -7,28 +7,23 @@ import java.io.IOException;
import java.util.List;
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.lang3.StringUtils;
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.utils.StorageIdUtils;
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.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.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.resources.ReportTemplateResource;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import com.iqser.red.storage.commons.service.StorageService;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@RestController
@ -42,55 +37,47 @@ public class ReportTemplateController implements ReportTemplateResource {
public ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest) {
String templateId = null;
List<ReportTemplateEntity> reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest
.getDossierTemplateId());
List<ReportTemplateEntity> reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest.getDossierTemplateId());
for (ReportTemplateEntity reportTemplate : reportTemplates) {
if (reportTemplate.getFileName()
.equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest
.isMultiFileReport() || reportTemplate.getFileName()
.equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest
.isMultiFileReport()) {
.equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest.isMultiFileReport() || reportTemplate.getFileName()
.equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest.isMultiFileReport()) {
templateId = reportTemplate.getTemplateId();
}
}
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest
.getFileName());
String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest.getFileName());
storageService.storeObject(storageId, new ByteArrayInputStream(reportTemplateUploadRequest.getTemplate()));
if (templateId != null) {
reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest
.builder()
reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest.builder()
.fileName(reportTemplateUploadRequest.getFileName())
.multiFileReport(reportTemplateUploadRequest.isMultiFileReport())
.activeByDefault(reportTemplateUploadRequest.isActiveByDefault())
.build());
} else {
templateId = UUID.randomUUID().toString();
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest
.getFileName(), reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport());
reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest.getFileName(),
reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport());
}
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
}
public List<ReportTemplate> getAvailableReportTemplates(
@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
public List<ReportTemplate> getAvailableReportTemplates(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
return convert(reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId), ReportTemplate.class);
}
public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@PathVariable(TEMPLATE_ID) String templateId) {
public ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class);
}
public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@PathVariable(TEMPLATE_ID) String templateId) {
public ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
try {
@ -102,8 +89,7 @@ public class ReportTemplateController implements ReportTemplateResource {
}
public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@PathVariable(TEMPLATE_ID) String templateId) {
public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) {
String storageId = reportTemplatePersistenceService.find(templateId).getStorageId();
storageService.deleteObject(storageId);
@ -112,8 +98,7 @@ public class ReportTemplateController implements ReportTemplateResource {
}
public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
@PathVariable(TEMPLATE_ID) String templateId,
public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId,
@RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) {
reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest);

View File

@ -1,16 +1,20 @@
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.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.resources.WatermarkResource;
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
@RequiredArgsConstructor
@ -20,24 +24,32 @@ public class WatermarkController implements WatermarkResource {
public Watermark createOrUpdateWatermark(@RequestBody Watermark watermark) {
return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class);
}
public Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
return convert(watermarkService.getWatermark(watermarkId), Watermark.class);
}
@Override
public List<Watermark> getWatermarksForDossierTemplateId(@RequestParam(value = DOSSIER_TEMPLATE_ID_PARAMETER_NAME) String dossierTemplateId) {
return convert(watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId), Watermark.class);
}
public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
watermarkService.deleteWatermark(watermarkId);
}
public JSONPrimitive<Boolean> isWatermarkUsed(@RequestParam(WATERMARK_ID_PARAMETER_NAME) long watermarkId) {
return JSONPrimitive.of(watermarkService.isWatermarkUsed(watermarkId));
}

View File

@ -53,27 +53,15 @@ public class EntityTypesMigration4 extends Migration {
if (type != null) {
// Check if type is systemManaged
if (type.getType() != null && systemManagedTypes.contains(type.getType())) {
type.setSystemManaged(true);
} else {
type.setSystemManaged(false);
}
type.setSystemManaged(type.getType() != null && systemManagedTypes.contains(type.getType()));
// Check if type is autoHideSkipped
if (type.getType() != null && autoHideSkippedTypes.contains(type.getType())) {
type.setAutoHideSkipped(true);
} else {
type.setAutoHideSkipped(false);
}
type.setAutoHideSkipped(type.getType() != null && autoHideSkippedTypes.contains(type.getType()));
// Check if type has dictionaries
List<? extends BaseDictionaryEntry> entries = entryPersistenceService.getEntries(type.getId(), DictionaryEntryType.ENTRY, null);
if (entries != null && !entries.isEmpty()) {
type.setHasDictionary(true);
} else {
type.setHasDictionary(false);
}
type.setHasDictionary(entries != null && !entries.isEmpty());
}
}

View File

@ -62,14 +62,14 @@ public class RedTextPosition {
@JsonAttribute()
public float[] getPosition() {
var position = new float[4];
var pos = new float[4];
position[0] = XDirAdj;
position[1] = YDirAdj;
position[2] = widthDirAdj;
position[3] = heightDir;
pos[0] = XDirAdj;
pos[1] = YDirAdj;
pos[2] = widthDirAdj;
pos[3] = heightDir;
return position;
return pos;
}

View File

@ -38,7 +38,7 @@ public class MasterPersistenceConfig {
private final ConfigurableListableBeanFactory beanFactory;
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

View File

@ -39,7 +39,7 @@ public class TenantPersistenceConfig {
private final ConfigurableListableBeanFactory beanFactory;
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

View File

@ -1,18 +1,20 @@
package com.iqser.red.service.peristence.v1.server.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;
import org.springframework.stereotype.Service;
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
import java.util.Comparator;
import java.util.List;
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
@Service
@ -24,7 +26,6 @@ public class DossierStatsService {
// private Map<String, DossierStats> dossierStatsMap = new HashMap<>();
// @Scheduled(fixedDelay = 10000, initialDelay = 1000)
// public void computeDossierStats() {
// log.info("Computing Dossier Stats ... ");
@ -38,6 +39,7 @@ public class DossierStatsService {
// log.info("Dossier Stats Computed in {}ms", System.currentTimeMillis() - start);
// }
public DossierStats getDossierStats(String dossierId) {
// var stats = dossierStatsMap.get(dossierId);
// if (stats == null) {
@ -47,7 +49,9 @@ public class DossierStatsService {
return computeDossierStats(dossierService.getDossierById(dossierId));
}
private DossierStats computeDossierStats(DossierEntity dossierEntity) {
var dossierId = dossierEntity.getId();
DossierStats dossierStats = new DossierStats();
@ -63,36 +67,32 @@ public class DossierStatsService {
dossierStats.setNumberOfSoftDeletedFiles(fileStatusService.countSoftDeletedFiles(dossierId));
dossierStats.setNumberOfPages(files.stream().mapToInt(FileModel::getNumberOfPages).sum());
dossierStats.setNumberOfExcludedPages(files.stream().mapToInt(f -> f.getExcludedPages().size()).sum());
files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent(
(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::isHasUpdates).findAny().ifPresent(
(v) -> dossierStats.setHasUpdatesFilePresent(true)
);
files.stream().filter(f -> !f.isHasRedactions())
files.stream().filter(FileModel::isHasRedactions).findAny().ifPresent(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::isHasUpdates).findAny().ifPresent(v -> dossierStats.setHasUpdatesFilePresent(true));
files.stream()
.filter(f -> !f.isHasRedactions())
.filter(f -> !f.isHasHints())
.filter(f -> !f.isHasSuggestions())
.filter(f -> !f.isHasUpdates())
.findAny().ifPresent(
(v) -> dossierStats.setHasNoFlagsFilePresent(true)
);
.findAny()
.ifPresent(v -> dossierStats.setHasNoFlagsFilePresent(true));
var fileCountPerProcessingStatus = files.stream().collect(Collectors.toMap(FileModel::getProcessingStatus, e -> 1, Math::addExact));
dossierStats.setFileCountPerProcessingStatus(fileCountPerProcessingStatus);
var fileCountPerWorkflowStatus = files.stream().collect(Collectors.toMap(FileModel::getWorkflowStatus, e -> 1, Math::addExact));
dossierStats.setFileCountPerWorkflowStatus(fileCountPerWorkflowStatus);
files.stream().sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder())))
.findFirst().ifPresent((file) -> dossierStats.setLastFileUpdateDate(file.getLastUpdated()));
files.stream().sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder())))
.findFirst().ifPresent((file) -> dossierStats.setFileManipulationDate(file.getFileManipulationDate()));
files.stream()
.sorted(Comparator.comparing(FileModel::getLastUpdated, Comparator.nullsLast(Comparator.reverseOrder())))
.findFirst()
.ifPresent(file -> dossierStats.setLastFileUpdateDate(file.getLastUpdated()));
files.stream()
.sorted(Comparator.comparing(FileModel::getFileManipulationDate, Comparator.nullsLast(Comparator.reverseOrder())))
.findFirst()
.ifPresent(file -> dossierStats.setFileManipulationDate(file.getFileManipulationDate()));
return dossierStats;
}
}

View File

@ -95,51 +95,39 @@ public class FileService {
forceRedactionPersistenceService.findForceRedactions(fileId, false).forEach(annotation -> {
forceRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
.forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
removeRedactionPersistenceService.findRemoveRedactions(fileId, false).forEach(annotation -> {
removeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
.forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
addRedactionPersistenceService.findAddRedactions(fileId, false).forEach(annotation -> {
addRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
.forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
recategorizationPersistenceService.findRecategorizations(fileId, false).forEach(recatigorization -> {
recategorizationPersistenceService.softDelete(fileId, recatigorization.getId()
.getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
.getAnnotationId(), false).forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
resizeRedactionPersistenceService.findResizeRedactions(fileId, false).forEach(annotation -> {
resizeRedactionPersistenceService.softDelete(fileId, annotation.getId().getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), false)
.forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false).forEach(legalBasisChange -> {
legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId()
.getAnnotationId(), softDeletedTime);
commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId()
.getAnnotationId(), false).forEach(comment -> {
commentPersistenceService.softDelete(comment.getId(), softDeletedTime);
});
.getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime));
});
viewedPagesPersistenceService.deleteForFile(fileId);
@ -160,41 +148,31 @@ public class FileService {
forceRedactionPersistenceService.findForceRedactions(fileId, true).forEach(annotation -> {
forceRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
.forEach(comment -> {
commentPersistenceService.hardDelete(comment.getId());
});
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
});
removeRedactionPersistenceService.findRemoveRedactions(fileId, true).forEach(annotation -> {
removeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
.forEach(comment -> {
commentPersistenceService.hardDelete(comment.getId());
});
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
});
addRedactionPersistenceService.findAddRedactions(fileId, true).forEach(annotation -> {
addRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
.forEach(comment -> {
commentPersistenceService.hardDelete(comment.getId());
});
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
});
recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> {
recategorizationPersistenceService.hardDelete(fileId, recatigorization.getId().getAnnotationId());
commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId()
.getAnnotationId(), true).forEach(comment -> {
commentPersistenceService.hardDelete(comment.getId());
});
.getAnnotationId(), true).forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
});
resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> {
resizeRedactionPersistenceService.hardDelete(fileId, annotation.getId().getAnnotationId());
commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true)
.forEach(comment -> {
commentPersistenceService.hardDelete(comment.getId());
});
.forEach(comment -> commentPersistenceService.hardDelete(comment.getId()));
});
indexingService.addToDeleteFromIndexQueue(dossierId, fileId, 2);

View File

@ -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.FileEntity;
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.IndexMessageType;
@ -70,12 +69,8 @@ public class IndexingService {
public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) {
try {
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
.messageType(indexMessageType)
.dossierTemplateId(dossierTemplateId)
.dossierId(dossierId)
.fileId(fileId)
.build()), message -> {
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(
IndexMessage.builder().messageType(indexMessageType).dossierTemplateId(dossierTemplateId).dossierId(dossierId).fileId(fileId).build()), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
@ -88,13 +83,11 @@ public class IndexingService {
public void addToDeleteFromIndexQueue(String dossierId, String fileId, int priority) {
try {
rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
.dossierId(dossierId)
.fileId(fileId)
.build()), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE,
objectMapper.writeValueAsString(IndexMessage.builder().dossierId(dossierId).fileId(fileId).build()), message -> {
message.getMessageProperties().setPriority(priority);
return message;
});
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}

View File

@ -61,18 +61,18 @@ public class ManualRedactionProviderService {
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<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<Comment>> comments = new HashMap<>();
commentEntities.forEach((s, c) -> {
comments.put(s, convert(c, Comment.class));
});
commentEntities.forEach((s, c) -> comments.put(s, convert(c, Comment.class)));
return new ManualRedactions(removals, entriesToAdd, forceRedactions, recategorizations, legalBasisChanges, resizeRedactions, comments);
}

View File

@ -172,7 +172,7 @@ public class ManualRedactionService {
.stream()
.filter(p -> p.getPage() > numberOfPages)
.findAny()
.ifPresent((p) -> new BadRequestException("Invalid page found in the request"));
.ifPresent(p -> new BadRequestException("Invalid page found in the request"));
}

View File

@ -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;
public class StorageIdUtils {
public final class StorageIdUtils {
private StorageIdUtils() {}
public static String getStorageId(String dossierId, String fileId, FileType fileType) {
return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension();