fixed hard delete and dossier template

This commit is contained in:
Timo Bejan 2021-11-08 14:27:58 +02:00
parent 57006ff6a4
commit f2b4d175c2
2 changed files with 27 additions and 6 deletions

View File

@ -15,7 +15,6 @@ import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
@ -65,14 +64,13 @@ public class DossierTemplatePersistenceService {
public void deleteDossierTemplate(String dossierTemplateId, String deletingUserId) {
dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> {
dossierTemplate.getDossiers().stream().filter(template -> !)
if (dossierTemplate.getDossiers().stream().filter(d -> d.getHardDeletedTime() ==null).collect(Collectors.toList()).isEmpty()) {
var hasNonDeletedDossiers = dossierTemplate.getDossiers().stream().anyMatch(template -> template.getHardDeletedTime() == null);
if (hasNonDeletedDossiers) {
throw new BadRequestException("Cannot delete dossier template with active dossiers!");
} else {
dossierTemplate.setModifiedBy(deletingUserId);
dossierTemplate.setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
dossierTemplate.setSoftDeleteTime(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
} else {
throw new BadRequestException("Cannot delete dossier template with active dossiers!");
}
}, () -> {
throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId));

View File

@ -1,7 +1,9 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
import feign.FeignException;
@ -9,16 +11,24 @@ import org.junit.Test;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Collections;
import static org.assertj.core.api.Assertions.assertThat;
public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTesterAndProvider dossierTesterAndProvider;
@Autowired
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
@Autowired
private DossierTemplateClient dossierTemplateClient;
@Autowired
private DossierClient dossierClient;
@Test
public void testDossierTemplate() {
@ -50,5 +60,18 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru);
assertThat(updated.getName()).isEqualTo("Template 1 Update");
var testDossier = dossierTesterAndProvider.provideTestDossier(updated);
try{
dossierTemplateClient.deleteDossierTemplate(updated.getId(), "1");
}catch (FeignException e){
assertThat(e.status()).isEqualTo(400);
}
dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId()));
dossierTemplateClient.deleteDossierTemplate(updated.getId(), "1");
assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue();
}
}