Merge branch 'RED-10529' into 'master'
RED-10529: Primary attribute removed after changing encoding type Closes RED-10529 See merge request redactmanager/persistence-service!890
This commit is contained in:
commit
9ce067bd80
@ -61,9 +61,9 @@ public class FileAttributesController implements FileAttributesResource {
|
|||||||
}
|
}
|
||||||
fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId,
|
fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId,
|
||||||
MagicConverter.convert(fileAttributesConfig, FileAttributesGeneralConfigurationEntity.class));
|
MagicConverter.convert(fileAttributesConfig, FileAttributesGeneralConfigurationEntity.class));
|
||||||
var result = fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId,
|
fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId,
|
||||||
MagicConverter.convert(fileAttributesConfig.getFileAttributeConfigs(),
|
MagicConverter.convert(fileAttributesConfig.getFileAttributeConfigs(), FileAttributeConfigEntity.class));
|
||||||
FileAttributeConfigEntity.class));
|
|
||||||
auditPersistenceService.audit(AuditRequest.builder()
|
auditPersistenceService.audit(AuditRequest.builder()
|
||||||
.userId(KeycloakSecurity.getUserId())
|
.userId(KeycloakSecurity.getUserId())
|
||||||
.objectId(dossierTemplateId)
|
.objectId(dossierTemplateId)
|
||||||
@ -74,7 +74,7 @@ public class FileAttributesController implements FileAttributesResource {
|
|||||||
.filenameMappingColumnHeaderName(fileAttributesConfig.getFilenameMappingColumnHeaderName())
|
.filenameMappingColumnHeaderName(fileAttributesConfig.getFilenameMappingColumnHeaderName())
|
||||||
.delimiter(fileAttributesConfig.getDelimiter())
|
.delimiter(fileAttributesConfig.getDelimiter())
|
||||||
.encoding(fileAttributesConfig.getEncoding())
|
.encoding(fileAttributesConfig.getEncoding())
|
||||||
.fileAttributeConfigs(MagicConverter.convert(result, FileAttributeConfig.class))
|
.fileAttributeConfigs(MagicConverter.convert(fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId), FileAttributeConfig.class))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,7 +81,7 @@ public class FileAttributeConfigPersistenceService {
|
|||||||
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public List<FileAttributeConfigEntity> setFileAttributesConfig(String dossierTemplateId, List<FileAttributeConfigEntity> fileAttributesConfig) {
|
public void setFileAttributesConfig(String dossierTemplateId, List<FileAttributeConfigEntity> fileAttributesConfig) {
|
||||||
|
|
||||||
Set<String> toSetIds = fileAttributesConfig.stream()
|
Set<String> toSetIds = fileAttributesConfig.stream()
|
||||||
.map(FileAttributeConfigEntity::getId)
|
.map(FileAttributeConfigEntity::getId)
|
||||||
@ -98,8 +98,6 @@ public class FileAttributeConfigPersistenceService {
|
|||||||
fileAttributesRepository.deleteByFileAttributeConfigId(ctr.getId());
|
fileAttributesRepository.deleteByFileAttributeConfigId(ctr.getId());
|
||||||
fileAttributeConfigRepository.deleteById(ctr.getId());
|
fileAttributeConfigRepository.deleteById(ctr.getId());
|
||||||
});
|
});
|
||||||
|
|
||||||
return getFileAttributes(dossierTemplateId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public interface FileAttributeConfigRepository extends JpaRepository<FileAttribu
|
|||||||
List<FileAttributeConfigEntity> findByDossierTemplateId(String dossierTemplateId);
|
List<FileAttributeConfigEntity> findByDossierTemplateId(String dossierTemplateId);
|
||||||
|
|
||||||
|
|
||||||
@Modifying
|
@Modifying(clearAutomatically = true)
|
||||||
@Query("update FileAttributeConfigEntity e set e.primaryAttribute = false where e.dossierTemplate.id = :dossierTemplateId")
|
@Query("update FileAttributeConfigEntity e set e.primaryAttribute = false where e.dossierTemplate.id = :dossierTemplateId")
|
||||||
void updateAllPrimaryAttributeValuesToFalse(@Param("dossierTemplateId") String dossierTemplateId);
|
void updateAllPrimaryAttributeValuesToFalse(@Param("dossierTemplateId") String dossierTemplateId);
|
||||||
|
|
||||||
|
|||||||
@ -396,4 +396,83 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
@Test
|
||||||
|
public void testUpdatePrimaryAttributeAndVerify() {
|
||||||
|
|
||||||
|
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||||
|
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||||
|
|
||||||
|
List<FileAttributeConfig> initialConfigs = new ArrayList<>();
|
||||||
|
initialConfigs.add(FileAttributeConfig.builder()
|
||||||
|
.csvColumnHeader("Attribute A")
|
||||||
|
.primaryAttribute(true)
|
||||||
|
.label("Attribute A")
|
||||||
|
.build());
|
||||||
|
initialConfigs.add(FileAttributeConfig.builder()
|
||||||
|
.csvColumnHeader("Attribute B")
|
||||||
|
.primaryAttribute(false)
|
||||||
|
.label("Attribute B")
|
||||||
|
.build());
|
||||||
|
initialConfigs.add(FileAttributeConfig.builder()
|
||||||
|
.csvColumnHeader("Attribute C")
|
||||||
|
.primaryAttribute(false)
|
||||||
|
.label("Attribute C")
|
||||||
|
.build());
|
||||||
|
|
||||||
|
FileAttributesConfig initialConfig = new FileAttributesConfig();
|
||||||
|
initialConfig.setDelimiter(",");
|
||||||
|
initialConfig.setEncoding(UTF_ENCODING);
|
||||||
|
initialConfig.setFilenameMappingColumnHeaderName("Name");
|
||||||
|
initialConfig.setFileAttributeConfigs(initialConfigs);
|
||||||
|
|
||||||
|
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), initialConfig);
|
||||||
|
|
||||||
|
var loadedInitialConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||||
|
assertThat(loadedInitialConfig.getFileAttributeConfigs()).hasSize(3);
|
||||||
|
FileAttributeConfig initialPrimary = loadedInitialConfig.getFileAttributeConfigs().stream()
|
||||||
|
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow(() -> new AssertionError("No primary attribute found initially"));
|
||||||
|
assertThat(initialPrimary.getLabel()).isEqualTo("Attribute A");
|
||||||
|
|
||||||
|
List<FileAttributeConfig> updatedConfigs = loadedInitialConfig.getFileAttributeConfigs().stream()
|
||||||
|
.map(config -> {
|
||||||
|
if (config.getLabel().equals("Attribute B")) {
|
||||||
|
config.setPrimaryAttribute(true);
|
||||||
|
} else if (config.getLabel().equals("Attribute A")) {
|
||||||
|
config.setPrimaryAttribute(false);
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
FileAttributesConfig updatedConfig = new FileAttributesConfig();
|
||||||
|
updatedConfig.setDelimiter(loadedInitialConfig.getDelimiter());
|
||||||
|
updatedConfig.setEncoding(loadedInitialConfig.getEncoding());
|
||||||
|
updatedConfig.setFilenameMappingColumnHeaderName(loadedInitialConfig.getFilenameMappingColumnHeaderName());
|
||||||
|
updatedConfig.setFileAttributeConfigs(updatedConfigs);
|
||||||
|
|
||||||
|
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), updatedConfig);
|
||||||
|
|
||||||
|
var loadedUpdatedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||||
|
assertThat(loadedUpdatedConfig.getFileAttributeConfigs()).hasSize(3);
|
||||||
|
FileAttributeConfig newPrimary = loadedUpdatedConfig.getFileAttributeConfigs().stream()
|
||||||
|
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow(() -> new AssertionError("No primary attribute found after update"));
|
||||||
|
assertThat(newPrimary.getLabel()).isEqualTo("Attribute B");
|
||||||
|
|
||||||
|
fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), loadedUpdatedConfig);
|
||||||
|
|
||||||
|
var reloadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId());
|
||||||
|
assertThat(reloadedConfig.getFileAttributeConfigs()).hasSize(3);
|
||||||
|
FileAttributeConfig verifiedPrimary = reloadedConfig.getFileAttributeConfigs().stream()
|
||||||
|
.filter(FileAttributeConfig::isPrimaryAttribute)
|
||||||
|
.findFirst()
|
||||||
|
.orElseThrow(() -> new AssertionError("No primary attribute found after reapplying configuration"));
|
||||||
|
assertThat(verifiedPrimary.getLabel()).isEqualTo("Attribute B");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user