Pull request #99: RED-2583 conflict with deleted dossierTemplate name
Merge in RED/persistence-service from bugfix/RED-2583 to master * commit '0305694baa8dea453f9137362a54dcd880b7f08b': RED-2583 conflict with deleted dossierTemplate name
This commit is contained in:
commit
7fe73674d2
@ -21,13 +21,13 @@ import java.util.Set;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Table(name = "dossier_template")
|
||||
@Table(name = "dossier_template", uniqueConstraints={@UniqueConstraint(columnNames = {"name", "soft_delete_time"})})
|
||||
public class DossierTemplateEntity {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
@Column(unique = true)
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@Column(length = 4000)
|
||||
@ -51,8 +51,8 @@ public class DossierTemplateEntity {
|
||||
@Column
|
||||
private OffsetDateTime validTo;
|
||||
|
||||
@Column
|
||||
private boolean deleted;
|
||||
@Column(name = "soft_delete_time")
|
||||
private OffsetDateTime softDeleteTime;
|
||||
|
||||
@ElementCollection
|
||||
@Enumerated(EnumType.STRING)
|
||||
|
||||
@ -57,7 +57,7 @@ public class DossierTemplatePersistenceService {
|
||||
}
|
||||
|
||||
public DossierTemplateEntity getDossierTemplate(String dossierTemplateId) {
|
||||
return dossierTemplateRepository.findByIdAndDeleted(dossierTemplateId, false).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)));
|
||||
return dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@ -68,7 +68,7 @@ public class DossierTemplatePersistenceService {
|
||||
|
||||
dossierTemplate.setModifiedBy(deletingUserId);
|
||||
dossierTemplate.setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
dossierTemplate.setDeleted(true);
|
||||
dossierTemplate.setSoftDeleteTime(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
} else {
|
||||
throw new BadRequestException("Cannot delete dossier template with active dossiers!");
|
||||
}
|
||||
|
||||
@ -9,8 +9,9 @@ import java.util.Optional;
|
||||
|
||||
public interface DossierTemplateRepository extends JpaRepository<DossierTemplateEntity, String> {
|
||||
|
||||
@Query("select d from DossierTemplateEntity d where d.deleted = false or d.deleted is null")
|
||||
@Query("select d from DossierTemplateEntity d where d.softDeleteTime is null")
|
||||
List<DossierTemplateEntity> findAllWhereDeletedIsFalse();
|
||||
|
||||
Optional<DossierTemplateEntity> findByIdAndDeleted(String dossierTemplateId, boolean isDeleted);
|
||||
@Query("select d from DossierTemplateEntity d where d.id = :dossierTemplateId and d.softDeleteTime is null")
|
||||
Optional<DossierTemplateEntity> findByIdAndNotDeleted(String dossierTemplateId);
|
||||
}
|
||||
|
||||
@ -24,12 +24,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
try {
|
||||
dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
} catch (FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(409);
|
||||
}
|
||||
|
||||
var allTemplates = dossierTemplateClient.getAllDossierTemplates();
|
||||
assertThat(allTemplates.size()).isEqualTo(1);
|
||||
assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate);
|
||||
@ -49,11 +43,12 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertThat(loadedTemplate).isEqualTo(updated);
|
||||
|
||||
dossierTemplateClient.getAllDossierTemplates().forEach(template -> {
|
||||
dossierTemplateClient.deleteDossierTemplate(template.getId(), "1");
|
||||
});
|
||||
dossierTemplateClient.getAllDossierTemplates().forEach(template -> dossierTemplateClient.deleteDossierTemplate(template.getId(), "1"));
|
||||
|
||||
assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue();
|
||||
|
||||
updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru);
|
||||
assertThat(updated.getName()).isEqualTo("Template 1 Update");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user