diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java index 893c9823b..00232e844 100644 --- a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java @@ -1,10 +1,8 @@ package com.iqser.red.service.persistence.v1.internal.api.controller; -import com.iqser.red.commons.spring.ErrorMessage; -import com.iqser.red.service.persistence.management.v1.processor.exception.*; - -import io.swagger.v3.oas.annotations.Hidden; -import lombok.extern.slf4j.Slf4j; +import java.sql.SQLException; +import java.time.OffsetDateTime; +import java.util.stream.Collectors; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -14,9 +12,17 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; -import java.sql.SQLException; -import java.time.OffsetDateTime; -import java.util.stream.Collectors; +import com.iqser.red.commons.spring.ErrorMessage; +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.DossierNotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.exception.InvalidRulesException; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.exception.RulesTimeoutDetectedException; +import com.iqser.red.service.persistence.service.v1.api.shared.mongo.exception.ComponentLogDocumentNotFoundException; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.extern.slf4j.Slf4j; @Slf4j @RestControllerAdvice @@ -129,4 +135,14 @@ public class InternalControllerAdvice { return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + + @Hidden + @ResponseBody + @ResponseStatus(value = HttpStatus.BAD_REQUEST) + @ExceptionHandler(ComponentLogDocumentNotFoundException.class) + public ErrorMessage handleCustomException(ComponentLogDocumentNotFoundException e) { + + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java index b2e2ab860..ada3a840a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java @@ -72,16 +72,7 @@ public class ComponentLogService { public ComponentLog getComponentLog(String dossierId, String fileId, boolean includeOverrides) { - ComponentLog componentLog; - try { - componentLog = fileManagementStorageService.getComponentLog(dossierId, fileId); - } catch (NotFoundException e) { - var componentLogOptional = componentLogMongoService.findComponentLogByDossierIdAndFileId(dossierId, fileId); - if (componentLogOptional.isEmpty()) { - throw new NotFoundException(e.getMessage()); - } - componentLog = componentLogOptional.get(); - } + ComponentLog componentLog = fileManagementStorageService.getComponentLog(dossierId, fileId); if (!includeOverrides) { componentLog = sortComponentLogEntriesByOrderList(componentLog, ORDER); @@ -153,7 +144,9 @@ public class ComponentLogService { private void insertOverride(String dossierId, String fileId, ComponentLogEntry componentToAdd) { - componentLogMongoService.insertComponentLogEntries(dossierId, fileId, List.of(componentToAdd)); + ComponentLog componentLog = fileManagementStorageService.getComponentLog(dossierId, fileId); + + componentLogMongoService.insertComponentLogEntries(dossierId, fileId, componentLog, List.of(componentToAdd)); } diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/ComponentLogMongoService.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/ComponentLogMongoService.java index a4d728e11..ee954e8da 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/ComponentLogMongoService.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/service/ComponentLogMongoService.java @@ -97,11 +97,11 @@ public class ComponentLogMongoService { } - public void insertComponentLogEntries(String dossierId, String fileId, List componentLogEntries) { + public void insertComponentLogEntries(String dossierId, String fileId, ComponentLog componentLog, List componentLogEntries) { String componentLogId = mapper.getComponentLogId(dossierId, fileId); - ComponentLogDocument componentLogDocument = getComponentLogDocument(componentLogId); + ComponentLogDocument componentLogDocument = mapper.toComponentLogDocument(dossierId, fileId, componentLog); List componentDocuments = componentLogEntries.stream() .map(componentLogEntry -> mapper.toComponentDocument(componentLogId, componentLogEntry))