From 8fa082f7a089bb238ab4efd210f250f54f64d47a Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Wed, 4 Oct 2023 16:18:41 +0200 Subject: [PATCH] DM-285: add internal component controller --- .../InternalComponentController.java | 28 +++++++++++++++ .../resources/InternalComponentResource.java | 36 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalComponentController.java create mode 100644 persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/InternalComponentResource.java diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalComponentController.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalComponentController.java new file mode 100644 index 000000000..cd7012c02 --- /dev/null +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalComponentController.java @@ -0,0 +1,28 @@ +package com.iqser.red.service.persistence.v1.internal.api.controller; + +import org.springframework.web.bind.annotation.RestController; + +import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; +import com.iqser.red.service.persistence.service.v1.api.internal.resources.InternalComponentResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; + +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; + +@RestController +@RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +public class InternalComponentController implements InternalComponentResource { + + ComponentLogService componentLogService; + + + @Override + public ComponentLog getComponentLog(String dossierId, String fileId, boolean includeOverrides) { + + return componentLogService.getComponentLog(dossierId, fileId, includeOverrides); + + } + +} diff --git a/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/InternalComponentResource.java b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/InternalComponentResource.java new file mode 100644 index 000000000..954464cab --- /dev/null +++ b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/InternalComponentResource.java @@ -0,0 +1,36 @@ +package com.iqser.red.service.persistence.service.v1.api.internal.resources; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; + +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; + +@ResponseStatus(value = HttpStatus.OK) +public interface InternalComponentResource { + + String COMPONENT_LOG_PATH = InternalApi.BASE_PATH + "/componentLog"; + + String DOSSIER_ID = "dossierId"; + String DOSSIER_ID_PATH_VARIABLE = "/{" + DOSSIER_ID + "}"; + + String FILE_ID = "fileId"; + + String FILE_ID_PATH_VARIABLE = "/{" + FILE_ID + "}"; + + + @GetMapping(value = COMPONENT_LOG_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "Gets the component log for a fileId", description = "None") + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The component log is not found.")}) + ComponentLog getComponentLog(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestParam(name = "includeOverrides", defaultValue = "true") boolean includeOverrides); + +} -- 2.47.2