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:
commit
16bde8fbee
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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"))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user