From 15c88c49432bf0364a63bf199b6bd9b9042a79dc Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Tue, 11 Mar 2025 10:52:24 +0100 Subject: [PATCH] fix(comp): rm permission and empty poule list on rm --- .../ffsaf/domain/service/CompetitionService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/CompetitionService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/CompetitionService.java index c5852db..cae9c9f 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/CompetitionService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/CompetitionService.java @@ -256,16 +256,16 @@ public class CompetitionService { public Uni delete(SecurityCtx securityCtx, Long id) { return repository.findById(id).invoke(Unchecked.consumer(c -> { - if (!securityCtx.getSubject().equals(c.getOwner()) || securityCtx.roleHas("federation_admin")) + if (!(securityCtx.getSubject().equals(c.getOwner()) || securityCtx.roleHas("federation_admin"))) throw new DForbiddenException(); })) .call(competitionModel -> pouleRepository.list("compet = ?1", competitionModel) - .call(pouleModels -> Uni.join() - .all(pouleModels.stream() - .map(pouleModel -> Panache.withTransaction( - () -> matchRepository.delete("poule = ?1", pouleModel.getId()))) - .toList()) - .andCollectFailures())) + .call(pouleModels -> pouleModels.isEmpty() ? Uni.createFrom().nullItem() : + Uni.join().all(pouleModels.stream() + .map(pouleModel -> Panache.withTransaction( + () -> matchRepository.delete("poule = ?1", pouleModel.getId()))) + .toList()) + .andCollectFailures())) .call(competitionModel -> Panache.withTransaction( () -> pouleRepository.delete("compet = ?1", competitionModel))) .chain(model -> Panache.withTransaction(() -> repository.delete("id", model.getId())))