Pull request #101: RED-2526 only one primary attribute in file-attributes

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

* commit '5d5ea1446e108fdf1953d931aa9ac2f235c7bb47':
  RED-2526 only one primary attribute in file-attributes
This commit is contained in:
Corina Olariu 2021-11-03 15:19:08 +01:00 committed by Timo Bejan
commit 16bde8fbee
3 changed files with 16 additions and 4 deletions

View File

@ -27,9 +27,13 @@ public class FileAttributeConfigPersistenceService {
private final DossierTemplateRepository dossierTemplateRepository;
private final FileAttributesRepository fileAttributesRepository;
@Transactional
public FileAttributeConfigEntity addOrUpdateFileAttribute(String dossierTemplateId, FileAttributeConfigEntity fileAttributeConfig) {
var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId);
fileAttributeConfig.setDossierTemplate(dossierTemplate);
if (fileAttributeConfig.isPrimaryAttribute()) {
fileAttributeConfigRepository.updateAllPrimaryAttributeValuesToFalse(dossierTemplateId);
}
if (fileAttributeConfig.getId() == null) {
fileAttributeConfig.setId(UUID.randomUUID().toString());
setPlaceholder(fileAttributeConfig);

View File

@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
@ -9,4 +11,7 @@ public interface FileAttributeConfigRepository extends JpaRepository<FileAttribu
List<FileAttributeConfigEntity> findByDossierTemplateId(String dossierTemplateId);
@Modifying
@Query("update FileAttributeConfigEntity e set e.primaryAttribute = false where e.dossierTemplate.id = :dossierTemplateId")
void updateAllPrimaryAttributeValuesToFalse(String dossierTemplateId);
}

View File

@ -69,14 +69,15 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build());
configs.add(FileAttributeConfig.builder()
.csvColumnHeader("Attribute A")
.primaryAttribute(false)
.primaryAttribute(true)
.label("Attribute A")
.build());
configs.add(FileAttributeConfig.builder()
FileAttributeConfig attributeB = FileAttributeConfig.builder()
.csvColumnHeader("Attribute B")
.primaryAttribute(false)
.primaryAttribute(true)
.label("Attribute B")
.build());
.build();
configs.add(attributeB);
configs.add(FileAttributeConfig.builder()
.csvColumnHeader("Attribute C")
.primaryAttribute(false)
@ -92,6 +93,8 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
List<FileAttributeConfig> loadedConfigs = fileAttributeConfigClient.getFileAttributeConfigs(dossier.getDossierTemplateId());
assertThat(loadedConfigs.size()).isEqualTo(5);
FileAttributeConfig primaryAttribute = loadedConfigs.stream().filter(FileAttributeConfig::isPrimaryAttribute).findAny().get();
assertThat(primaryAttribute.getLabel()).isEqualTo(attributeB.getLabel());
fileAttributeConfigClient.deleteFileAttributeConfigs(loadedConfigs.stream()
.filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute C"))