Merge branch 'RED-9958' into 'master'
RED-9958:Several problems after technical_name refactoring Closes RED-9958 See merge request redactmanager/persistence-service!711
This commit is contained in:
commit
3d9b7fc03f
@ -5,22 +5,21 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import jakarta.transaction.Transactional;
|
|
||||||
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService;
|
||||||
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.LegalBasisMappingResource;
|
import com.iqser.red.service.persistence.service.v1.api.external.resource.LegalBasisMappingResource;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis;
|
||||||
|
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
|
||||||
|
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
|
||||||
|
|
||||||
|
import jakarta.transaction.Transactional;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -33,9 +32,9 @@ public class LegalBasisMappingController implements LegalBasisMappingResource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')")
|
@PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')")
|
||||||
public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisNames) {
|
public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisTechnicalNames) {
|
||||||
|
|
||||||
legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames);
|
legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisTechnicalNames);
|
||||||
auditPersistenceService.audit(AuditRequest.builder()
|
auditPersistenceService.audit(AuditRequest.builder()
|
||||||
.userId(KeycloakSecurity.getUserId())
|
.userId(KeycloakSecurity.getUserId())
|
||||||
.objectId(dossierTemplateId)
|
.objectId(dossierTemplateId)
|
||||||
|
|||||||
@ -28,15 +28,15 @@ public interface LegalBasisMappingResource {
|
|||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
@PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "delete some legal basis by their names.", description = "None")
|
@Operation(summary = "delete some legal basis by their technical names.", description = "None")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")})
|
||||||
void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisNames);
|
void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<String> legalBasisTechnicalNames);
|
||||||
|
|
||||||
|
|
||||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||||
@PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "Add or update one legalBasis.", description = "None")
|
@Operation(summary = "Add or update one legalBasis.", description = "None")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "400", description = "Missing required parameter")})
|
||||||
void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis);
|
void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -29,12 +29,12 @@ public class LegalBasisMappingPersistenceService {
|
|||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void deleteLegalBasis(String dossierTemplateId, List<String> legalBasisNames) {
|
public void deleteLegalBasis(String dossierTemplateId, List<String> legalBasisTechnicalNames) {
|
||||||
|
|
||||||
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
|
var mapping = getLegalBasisMappingOrCreate(dossierTemplateId);
|
||||||
var filteredLegalBasis = mapping.getLegalBasis()
|
var filteredLegalBasis = mapping.getLegalBasis()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(l -> !legalBasisNames.contains(l.getName()))
|
.filter(l -> !legalBasisTechnicalNames.contains(l.getTechnicalName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
mapping.setLegalBasis(filteredLegalBasis);
|
mapping.setLegalBasis(filteredLegalBasis);
|
||||||
@ -77,11 +77,11 @@ public class LegalBasisMappingPersistenceService {
|
|||||||
|
|
||||||
mapping.getLegalBasis()
|
mapping.getLegalBasis()
|
||||||
.stream()
|
.stream()
|
||||||
.filter(l -> l.getName().equals(legalBasis.getName()))
|
.filter(l -> l.getTechnicalName().equals(legalBasis.getTechnicalName()))
|
||||||
.findAny().ifPresentOrElse(existingBasis -> {
|
.findAny().ifPresentOrElse(existingBasis -> {
|
||||||
existingBasis.setReason(legalBasis.getReason());
|
existingBasis.setReason(legalBasis.getReason());
|
||||||
existingBasis.setDescription(legalBasis.getDescription());
|
existingBasis.setDescription(legalBasis.getDescription());
|
||||||
existingBasis.setTechnicalName(legalBasis.getTechnicalName());
|
existingBasis.setName(legalBasis.getName());
|
||||||
},
|
},
|
||||||
() -> mapping.getLegalBasis()
|
() -> mapping.getLegalBasis()
|
||||||
.add(LegalBasisEntity.builder()
|
.add(LegalBasisEntity.builder()
|
||||||
@ -99,6 +99,10 @@ public class LegalBasisMappingPersistenceService {
|
|||||||
|
|
||||||
private void validateLegalBasis(LegalBasis legalBasis) {
|
private void validateLegalBasis(LegalBasis legalBasis) {
|
||||||
|
|
||||||
|
if (legalBasis.getTechnicalName() == null || legalBasis.getTechnicalName().isEmpty()) {
|
||||||
|
throw new BadRequestException("The technical name cannot be empty!");
|
||||||
|
}
|
||||||
|
|
||||||
if (legalBasis.getName().length() > MAX_NAME_LENGTH) {
|
if (legalBasis.getName().length() > MAX_NAME_LENGTH) {
|
||||||
throw new BadRequestException(String.format("The name is too long (%s), max length %s", legalBasis.getName().length(), MAX_NAME_LENGTH));
|
throw new BadRequestException(String.format("The name is too long (%s), max length %s", legalBasis.getName().length(), MAX_NAME_LENGTH));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,10 +49,10 @@ import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkCl
|
|||||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessageReceiver;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessageReceiver;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierStatusRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierStatusRequest;
|
||||||
@ -571,7 +571,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
|||||||
// delete justifications for export
|
// delete justifications for export
|
||||||
legalBasisClient.deleteLegalBasis(dossierTemplate.getId(),
|
legalBasisClient.deleteLegalBasis(dossierTemplate.getId(),
|
||||||
existingLegalBasis.stream()
|
existingLegalBasis.stream()
|
||||||
.map(LegalBasis::getName)
|
.map(LegalBasis::getTechnicalName)
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||||
assertThat(existingLegalBasis.isEmpty()).isTrue();
|
assertThat(existingLegalBasis.isEmpty()).isTrue();
|
||||||
|
|||||||
@ -57,7 +57,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
|
|||||||
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
|
||||||
assertThat(mapping.size()).isEqualTo(3);
|
assertThat(mapping.size()).isEqualTo(3);
|
||||||
assertThat(mapping.stream()
|
assertThat(mapping.stream()
|
||||||
.map(LegalBasis::getName)
|
.map(LegalBasis::getTechnicalName)
|
||||||
.collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3");
|
.collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3");
|
||||||
|
|
||||||
legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").technicalName("test 3").build();
|
legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").technicalName("test 3").build();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user