RED-9717: made fileId field required and removed it from WarningModel

This commit is contained in:
yhampe 2024-08-27 09:53:58 +02:00
parent b977a2e46e
commit 2908477ce8
3 changed files with 15 additions and 23 deletions

View File

@ -308,7 +308,7 @@ public class StatusController implements StatusResource {
accessControlService.checkAccessPermissionsToDossier(dossierId); accessControlService.checkAccessPermissionsToDossier(dossierId);
accessControlService.verifyUserIsApprover(dossierId); accessControlService.verifyUserIsApprover(dossierId);
ApproveResponse approveResponse = new ApproveResponse(fileId, false, new HashMap<>()); ApproveResponse approveResponse = new ApproveResponse(fileId, false, new ArrayList<>());
if (!force) { if (!force) {
approveResponse = approvalVerificationService.verifyApprovalOfFile(dossierId, fileId); approveResponse = approvalVerificationService.verifyApprovalOfFile(dossierId, fileId);
} }

View File

@ -34,7 +34,7 @@ public class ApprovalVerificationService {
public ApproveResponse verifyApprovalOfFile(String dossierId, String fileId) { public ApproveResponse verifyApprovalOfFile(String dossierId, String fileId) {
ApproveResponse approveResponse = new ApproveResponse(); ApproveResponse approveResponse = new ApproveResponse(fileId);
EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, true); EntityLog entityLog = entityLogService.getEntityLog(dossierId, fileId, true);
List<EntityLogEntry> entityLogEntries = entityLog.getEntityLogEntry(); List<EntityLogEntry> entityLogEntries = entityLog.getEntityLogEntry();
List<LegalBasisEntity> legalBasisMappings = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierRepository.findDossierTemplateId(dossierId)); List<LegalBasisEntity> legalBasisMappings = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierRepository.findDossierTemplateId(dossierId));
@ -42,18 +42,18 @@ public class ApprovalVerificationService {
for (EntityLogEntry entry : entityLogEntries) { for (EntityLogEntry entry : entityLogEntries) {
if (entry.getState().equals(EntryState.APPLIED) && !entry.getEntryType().equals(EntryType.IMAGE) && !entry.getEntryType().equals(EntryType.IMAGE_HINT)) { if (entry.getState().equals(EntryState.APPLIED) && !entry.getEntryType().equals(EntryType.IMAGE) && !entry.getEntryType().equals(EntryType.IMAGE_HINT)) {
if (StringUtils.isEmpty(entry.getLegalBasis())) { if (StringUtils.isEmpty(entry.getLegalBasis())) {
addWarning(entry, fileId, WarningType.LEGAL_BASIS_MISSING, approveResponse); addWarning(entry, WarningType.LEGAL_BASIS_MISSING, approveResponse);
} else { } else {
var legalBasisEntity = legalBasisMappings.stream() var legalBasisEntity = legalBasisMappings.stream()
.filter(mapping -> mapping.getReason().equals(entry.getLegalBasis())) .filter(mapping -> mapping.getReason().equals(entry.getLegalBasis()))
.findFirst(); .findFirst();
if (legalBasisEntity.isEmpty() || StringUtils.isEmpty(legalBasisEntity.get().getTechnicalName())) { if (legalBasisEntity.isEmpty() || StringUtils.isEmpty(legalBasisEntity.get().getTechnicalName())) {
addWarning(entry, fileId, WarningType.UNMAPPED_JUSTIFICATION, approveResponse); addWarning(entry, WarningType.UNMAPPED_JUSTIFICATION, approveResponse);
} }
} }
} }
if (entry.getState().equals(EntryState.PENDING)) { if (entry.getState().equals(EntryState.PENDING)) {
addWarning(entry, fileId, WarningType.PENDING_CHANGE, approveResponse); addWarning(entry, WarningType.PENDING_CHANGE, approveResponse);
} }
} }
@ -62,10 +62,9 @@ public class ApprovalVerificationService {
} }
private void addWarning(EntityLogEntry entry, String fileId, WarningType warningType, ApproveResponse approveResponse) { private void addWarning(EntityLogEntry entry, WarningType warningType, ApproveResponse approveResponse) {
approveResponse.addFileWarning(fileId, approveResponse.addFileWarning(WarningModel.builder()
WarningModel.builder()
.id(entry.getId()) .id(entry.getId())
.pages(entry.getPositions() .pages(entry.getPositions()
.stream() .stream()

View File

@ -3,39 +3,32 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.warning;
import static com.iqser.red.service.persistence.service.v1.api.shared.model.warning.WarningsComparatorUtils.WARNING_MODEL_COMPARATOR; import static com.iqser.red.service.persistence.service.v1.api.shared.model.warning.WarningsComparatorUtils.WARNING_MODEL_COMPARATOR;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @RequiredArgsConstructor
@Data @Data
@Builder @Builder
public class ApproveResponse { public class ApproveResponse {
@NonNull
private String fileId; private String fileId;
private boolean hasWarnings; private boolean hasWarnings;
private Map<String, List<WarningModel>> fileWarnings = new HashMap<>(); private ArrayList<WarningModel> fileWarnings = new ArrayList<>();
public void addFileWarning(String fileId, WarningModel warningModel) { public void addFileWarning(WarningModel warningModel) {
if (fileWarnings.containsKey(fileId)) { fileWarnings.add(warningModel);
fileWarnings.get(fileId).add(warningModel);
} else {
List<WarningModel> warningModels = new ArrayList<>();
warningModels.add(warningModel);
fileWarnings.put(fileId, warningModels);
}
fileWarnings.get(fileId).sort(WARNING_MODEL_COMPARATOR); fileWarnings.sort(WARNING_MODEL_COMPARATOR);
} }
} }