legal basis api reviewer to null
This commit is contained in:
parent
5000127952
commit
62cbda7214
@ -11,7 +11,6 @@ import lombok.NoArgsConstructor;
|
||||
@Builder
|
||||
public class LegalBasis {
|
||||
|
||||
private long id;
|
||||
private String name;
|
||||
private String description;
|
||||
private String reason;
|
||||
|
||||
@ -10,16 +10,22 @@ import java.util.List;
|
||||
public interface LegalBasisMappingResource {
|
||||
|
||||
String LEGAL_BASIS_PATH = "/legalBasis";
|
||||
String DELETE_PATH = "/delete";
|
||||
String VERSION_PATH = "/version";
|
||||
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||
|
||||
|
||||
@PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisNames);
|
||||
|
||||
@PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis);
|
||||
|
||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||
@PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<LegalBasis> legalBasisMapping);
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
|
||||
@ -48,7 +48,7 @@ public interface StatusResource {
|
||||
|
||||
@PostMapping(value = STATUS_PATH + "/reviewer" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
void setCurrentFileReviewer(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId,
|
||||
@RequestParam(value = APPROVER_ID_REQUEST_PARAM, required =false) String reviewerId);
|
||||
@RequestParam(value = REVIEWER_ID_REQUEST_PARAM, required =false) String reviewerId);
|
||||
|
||||
|
||||
@PostMapping(value = STATUS_PATH + "/underreview" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE)
|
||||
|
||||
@ -8,17 +8,12 @@ import lombok.NoArgsConstructor;
|
||||
import javax.persistence.*;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Table(name = "legal_basis")
|
||||
@Embeddable
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class LegalBasisEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private long id;
|
||||
@Column
|
||||
private String name;
|
||||
@Column(columnDefinition = "text")
|
||||
private String description;
|
||||
|
||||
@ -18,7 +18,7 @@ public class LegalBasisMappingEntity {
|
||||
@Column
|
||||
private long version;
|
||||
|
||||
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
|
||||
@ElementCollection
|
||||
private List<LegalBasisEntity> legalBasis = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -2,14 +2,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||
|
||||
@ -22,6 +23,36 @@ public class LegalBasisMappingPersistenceService {
|
||||
private final LegalBasisMappingRepository legalBasisMappingRepository;
|
||||
|
||||
|
||||
@Transactional
|
||||
public void deleteLegalBasis(String dossierTemplateId, List<String> legalBasisNames) {
|
||||
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
|
||||
var filteredLegalBasis = mapping.getLegalBasis().stream().filter(l -> !legalBasisNames.contains(l.getName())).collect(Collectors.toList());
|
||||
|
||||
mapping.setLegalBasis(filteredLegalBasis);
|
||||
mapping.setVersion(mapping.getVersion() + 1);
|
||||
legalBasisMappingRepository.save(mapping);
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) {
|
||||
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
|
||||
|
||||
mapping.getLegalBasis().stream().filter(l -> l.getName().equals(legalBasis.getName())).findAny().ifPresentOrElse(existingBasis -> {
|
||||
existingBasis.setReason(legalBasis.getReason());
|
||||
existingBasis.setDescription(legalBasis.getDescription());
|
||||
}, () -> mapping.getLegalBasis().add(LegalBasisEntity.builder()
|
||||
.name(legalBasis.getName())
|
||||
.description(legalBasis.getDescription())
|
||||
.reason(legalBasis.getReason()).build()));
|
||||
|
||||
|
||||
mapping.setVersion(mapping.getVersion() + 1);
|
||||
legalBasisMappingRepository.save(mapping);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void setLegalBasisMapping(String dossierTemplateId, List<LegalBasis> legalBasisMapping) {
|
||||
|
||||
@ -40,9 +71,21 @@ public class LegalBasisMappingPersistenceService {
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public List<LegalBasisEntity> getLegalBasisMapping(String dossierTemplateId) {
|
||||
return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMappingEntity::getLegalBasis)
|
||||
.orElseThrow(() -> new NotFoundException("Legal Basis Not configured!"));
|
||||
return getLegalBasisMappingOrCreate(dossierTemplateId).getLegalBasis();
|
||||
}
|
||||
|
||||
private LegalBasisMappingEntity getLegalBasisMappingOrCreate(String dossierTemplateId) {
|
||||
return legalBasisMappingRepository.findById(dossierTemplateId).orElseGet(() -> {
|
||||
// create on get if not present
|
||||
var lbm = new LegalBasisMappingEntity();
|
||||
lbm.setDossierTemplateId(dossierTemplateId);
|
||||
lbm.setLegalBasis(new ArrayList<>());
|
||||
lbm.setVersion(1);
|
||||
return legalBasisMappingRepository.save(lbm);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public long getVersion(String dossierTemplateId) {
|
||||
|
||||
@ -21,6 +21,15 @@ public class LegalBasisMappingController implements LegalBasisMappingResource {
|
||||
|
||||
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
||||
|
||||
@Override
|
||||
public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisNames) {
|
||||
legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis) {
|
||||
legalBasisMappingPersistenceService.addOrUpdateLegalBasis(dossierTemplateId, legalBasis);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.iqser.red.service.peristence.v1.server.controller;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService;
|
||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage;
|
||||
import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource;
|
||||
@ -17,12 +19,16 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma
|
||||
public class ViewedPagesController implements ViewedPagesResource {
|
||||
|
||||
private final ViewedPagesPersistenceService viewedPagesPersistenceService;
|
||||
private final FileStatusService fileStatusService;
|
||||
private final AnalysisFlagsCalculationService analysisFlagsCalculationService;
|
||||
|
||||
|
||||
public void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role,
|
||||
@RequestBody Integer page) {
|
||||
|
||||
viewedPagesPersistenceService.insertPage(fileId, role, page);
|
||||
var file = fileStatusService.getStatus(fileId);
|
||||
analysisFlagsCalculationService.calculateFlags(file.getDossierId(), fileId);
|
||||
}
|
||||
|
||||
|
||||
@ -30,6 +36,8 @@ public class ViewedPagesController implements ViewedPagesResource {
|
||||
@RequestBody Integer page) {
|
||||
|
||||
viewedPagesPersistenceService.removePage(fileId, role, page);
|
||||
var file = fileStatusService.getStatus(fileId);
|
||||
analysisFlagsCalculationService.calculateFlags(file.getDossierId(), fileId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
||||
var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||
|
||||
|
||||
fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1"));
|
||||
fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(),"1");
|
||||
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||
assertThat(loadedFile.getCurrentReviewer()).isEqualTo("1");
|
||||
assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNDER_REVIEW);
|
||||
@ -70,7 +70,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(loadedFile.getExcludedPages()).isEmpty();
|
||||
|
||||
|
||||
fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), JSONPrimitive.of("1"));
|
||||
fileClient.setCurrentFileReviewer(dossier.getId(), file.getId(), "1");
|
||||
loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||
assertThat(loadedFile.getCurrentReviewer()).isEqualTo("1");
|
||||
assertThat(loadedFile.getStatus()).isEqualTo(FileStatus.UNDER_REVIEW);
|
||||
|
||||
@ -40,7 +40,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
|
||||
mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build());
|
||||
mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build());
|
||||
legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), mappings);
|
||||
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(1);
|
||||
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2);
|
||||
|
||||
|
||||
var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
@ -48,9 +48,31 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2");
|
||||
|
||||
|
||||
var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").build();
|
||||
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
|
||||
|
||||
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(3);
|
||||
assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3");
|
||||
|
||||
|
||||
legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").build();
|
||||
legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis);
|
||||
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(3);
|
||||
assertThat(mapping.stream().map(LegalBasis::getDescription).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3 - updated");
|
||||
|
||||
|
||||
legalBasisClient.deleteLegalBasis(dossierTemplate.getId(),Lists.newArrayList("test 1"));
|
||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||
assertThat(mapping.size()).isEqualTo(2);
|
||||
|
||||
|
||||
legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), Lists.newArrayList());
|
||||
assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty();
|
||||
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2);
|
||||
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(6);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user