RED-9063 - Error 409 when requesting deleted types #470
@ -294,11 +294,13 @@ public class DictionaryManagementService {
|
||||
checkDossierMatchesDossierTemplate(dossierId, dossierTemplateId);
|
||||
// type not found, it should be created based on the info from the dossier template type
|
||||
var dossierTemplateType = dictionaryPersistenceService.getType(getDosssierTemplateTypeIdFromTypeId(typeId), includeDeleted);
|
||||
Type dossierDictionaryType = MagicConverter.convert(dossierTemplateType, Type.class);
|
||||
dossierDictionaryType.setVersion(0);
|
||||
dossierDictionaryType.setDossierId(dossierId);
|
||||
var returnedType = this.addType(dossierDictionaryType);
|
||||
log.info("Type added: " + returnedType.toString());
|
||||
if (!dossierTemplateType.isDeleted()) { //create dossier types if dossier template type is not deleted
|
||||
Type dossierDictionaryType = MagicConverter.convert(dossierTemplateType, Type.class);
|
||||
dossierDictionaryType.setVersion(0);
|
||||
dossierDictionaryType.setDossierId(dossierId);
|
||||
var returnedType = this.addType(dossierDictionaryType);
|
||||
log.info("Type added: " + returnedType.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -851,6 +851,55 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCreateDossierOnTheFlyForDTTypeDeleted() {
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
|
||||
var dossierTemplate = dossierTemplateClient.getDossierTemplate(dossier.getDossierTemplateId());
|
||||
|
||||
var dtType = dictionaryClient.addType(CreateTypeValue.builder()
|
||||
.type("test1")
|
||||
.label("test1")
|
||||
.hexColor("#fcba03")
|
||||
.rank(100)
|
||||
.hint(false)
|
||||
.caseInsensitive(false)
|
||||
.recommendation(false)
|
||||
.addToDictionaryAction(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.dossierDictionaryOnly(false)
|
||||
.build());
|
||||
assertThat(dtType.getRank()).isEqualTo(100);
|
||||
assertThat(dtType.isDossierDictionaryOnly()).isFalse();
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes().size()).isEqualTo(1);
|
||||
|
||||
dictionaryClient.deleteType(dtType.getType(), dtType.getDossierTemplateId());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false).getTypes().size()).isEqualTo(0);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes().size()).isEqualTo(1);
|
||||
|
||||
var dtType2 = dictionaryClient.addType(CreateTypeValue.builder()
|
||||
.type("test2")
|
||||
.label("test2")
|
||||
.hexColor("#fcba03")
|
||||
.rank(100)
|
||||
.hint(false)
|
||||
.caseInsensitive(false)
|
||||
.recommendation(false)
|
||||
.addToDictionaryAction(true)
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.dossierDictionaryOnly(false)
|
||||
.build());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, false).getTypes().size()).isEqualTo(1);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), null, true).getTypes().size()).isEqualTo(2);
|
||||
|
||||
assertThat(dtType2.getRank()).isEqualTo(dtType.getRank());
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), false).getTypes().size()).isEqualTo(2);
|
||||
assertThat(dictionaryClient.getAllTypes(dossierTemplate.getId(), dossier.getId(), true).getTypes().size()).isEqualTo(3);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("SameParameterValue")
|
||||
private List<String> createDummyEntries(int numberOfEntries) {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user