RED-6485 - Dossier-only entity setting in the dossier template, RED-6743 - Create dossier dictionaries on-the-fly

- when getting DictionaryForType, create dossier level dictionary if it does not exists
This commit is contained in:
Corina Olariu 2023-06-13 13:32:05 +03:00
parent 889e63e7c7
commit a8d4c91733
2 changed files with 3 additions and 1 deletions

View File

@ -246,7 +246,8 @@ public class DictionaryService {
accessControlService.verifyUserHasViewPermissions(dossierId);
}
var typeId = toTypeId(type, dossierTemplateId, dossierId);
// should we create it?
// create dossier level type if it does not exist
dictionaryManagementService.checkForDossierTypeExistenceAndCreate(typeId);
var entity = dictionaryPersistenceService.getType(typeId);
var dictionaryForType = MagicConverter.convert(entity, Type.class);
dictionaryForType.setEntries(MagicConverter.convert(entryPersistenceService.getEntries(typeId, DictionaryEntryType.ENTRY, null), DictionaryEntry.class));

View File

@ -269,6 +269,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), null, false).getTypes().size()).isEqualTo(1);
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier.getId(), false).getTypes().size()).isEqualTo(3);
var dictionary = dictionaryClient.getDictionaryForType(returnedtype1.getType(), dossier.getDossierTemplateId(), dossier2.getId());
assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), dossier2.getId(), false).getTypes().size()).isEqualTo(3);
}