From 964f74c2e5625fdb88582cbd07d38f8b2f6ba596 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 20 Jun 2022 20:13:18 +0300 Subject: [PATCH] RED-4249 - multiple watermarks per dossier template --- .../v1/api/resources/WatermarkResource.java | 13 +++++++++-- .../processor/service/WatermarkService.java | 23 ++++++++++--------- .../repository/WatermarkRepository.java | 4 ++++ .../controller/WatermarkController.java | 13 +++++++++-- 4 files changed, 38 insertions(+), 15 deletions(-) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java index c541ec656..6429d13f0 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java @@ -5,6 +5,8 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; +import java.util.List; + @ResponseStatus(value = HttpStatus.OK) public interface WatermarkResource { @@ -12,15 +14,22 @@ public interface WatermarkResource { String WATERMARK_ID_PARAMETER_NAME = "watermarkId"; String WATERMARK_ID_PATH_VARIABLE = "/{" + WATERMARK_ID_PARAMETER_NAME + "}"; + String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + "dossierTemplateId" + "}"; + + String DOSSIER_TEMPLATE_ID_PARAMETER_NAME = "dossierTemplateId"; + @ResponseStatus(HttpStatus.CREATED) @PostMapping(value = WATERMARK_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) Watermark createOrUpdateWatermark(@RequestBody Watermark watermark); @GetMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) - Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) Long watermarkId); + Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); + + @GetMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) + List getWatermarksForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAMETER_NAME) long dossierTemplateId); @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE) - void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) Long watermarkId); + void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java index e43584d0c..f1c3ee01d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java @@ -1,23 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service; -import javax.transaction.Transactional; - -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.WatermarkRepository; - +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; -import java.util.Optional; +import javax.transaction.Transactional; +import java.util.List; @Slf4j @Service @@ -87,4 +84,8 @@ public class WatermarkService { } + public List getWatermarksForDossierTemplateId(long dossierTemplateId) { + return watermarkRepository.findByDossierTemplateId(dossierTemplateId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java index 8d0978a41..f9e3f9837 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java @@ -1,7 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface WatermarkRepository extends JpaRepository { + List findByDossierTemplateId(long dossierTemplateId); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java index 0a9e1e55a..8e4b0605d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/WatermarkController.java @@ -5,9 +5,12 @@ import com.iqser.red.service.persistence.management.v1.processor.service.Waterma 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.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @RestController @@ -21,11 +24,17 @@ public class WatermarkController implements WatermarkResource { return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class); } - public Watermark getWatermark(Long watermarkId) { + + public Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { return convert(watermarkService.getWatermark(watermarkId), Watermark.class); } - public void deleteWatermark(Long watermarkId) { + @Override + public List getWatermarksForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAMETER_NAME)long dossierTemplateId) { + return convert(watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId), Watermark.class); + } + + public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { watermarkService.deleteWatermark(watermarkId); }