Pull request #98: RED-2529 deleting dossier attributes connected to dossiers

Merge in RED/persistence-service from bugfix/RED-2529 to master

* commit '9427124a7456a85da5d75082ee1d236393bf0548':
  RED-2529 deleting dossier attributes connected to dossiers
This commit is contained in:
Corina Olariu 2021-11-03 11:56:06 +01:00 committed by Timo Bejan
commit bb5b93e923
3 changed files with 17 additions and 3 deletions

View File

@ -75,12 +75,13 @@ public class DossierAttributeConfigPersistenceService {
@Transactional
public void deleteDossierAttribute(String dossierAttributeId) {
dossierAttributeRepository.deleteByDossierAttributeConfigId(dossierAttributeId);
dossierAttributeConfigRepository.deleteById(dossierAttributeId);
}
@Transactional
public void deleteDossierAttributes(List<String> dossierAttributeIds) {
dossierAttributeConfigRepository.deleteByDossierAtributeIds(dossierAttributeIds);
dossierAttributeIds.forEach(this::deleteDossierAttribute);
}
public List<DossierAttributeConfigEntity> getDossierAttributes(String dossierTemplateId) {

View File

@ -17,7 +17,7 @@ public interface DossierAttributeRepository extends JpaRepository<DossierAttribu
List<DossierAttributeEntity> findByDossierTemplateId(String dossierTemplateId);
@Modifying
@Query("DELETE FROM DossierAttributeEntity e WHERE e.dossierAttributeConfig.id = :id")
@Query("DELETE FROM DossierAttributeEntity e WHERE e.id.dossierAttributeConfigId = :id")
void deleteByDossierAttributeConfigId(String id);
@Modifying

View File

@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
@ -62,6 +63,13 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute));
loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId());
assertThat(loadedAttributes).isNotEmpty();
dossierAttributeConfigClient.deleteDossierAttributes(
loadedAttributes.stream().map(DossierAttributeConfig::getId).collect(Collectors.toList()));
dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute));
loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId());
assertThat(loadedAttributes).isNotEmpty();
var configId = loadedAttributes.iterator().next().getId();
@ -84,15 +92,20 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest {
firstAttribute = loadedAttributeValues.iterator().next();
assertThat(firstAttribute.getValue()).isEqualTo("test");
dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId());
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues).isEmpty();
dossierAttributeClient.setDossierAttributes(dossier.getId(), dossierAttributes);
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues).isNotEmpty();
//delete the list of dossier attribute config with child
dossierAttributeConfigClient.deleteDossierAttributes(Lists.newArrayList(loadedAttributes.iterator().next().getId()));
loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId());
assertThat(loadedAttributes).isEmpty();
loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId());
assertThat(loadedAttributeValues).isEmpty();
}
}