RED-4249 - multiple watermarks per dossier template

This commit is contained in:
Timo Bejan 2022-06-20 20:13:18 +03:00
parent 6ced59075e
commit 964f74c2e5
4 changed files with 38 additions and 15 deletions

View File

@ -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<Watermark> 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);
}

View File

@ -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<WatermarkEntity> getWatermarksForDossierTemplateId(long dossierTemplateId) {
return watermarkRepository.findByDossierTemplateId(dossierTemplateId);
}
}

View File

@ -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<WatermarkEntity, Long> {
List<WatermarkEntity> findByDossierTemplateId(long dossierTemplateId);
}

View File

@ -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<Watermark> 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);
}