From c6751b04283df99003d162a85b7bc273678cf9a3 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Fri, 2 Jan 2026 14:42:02 +0100 Subject: [PATCH] fix: recalculateMatch --- .../fr/titionfire/ffsaf/ws/recv/RMatch.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java b/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java index abae418..a28ac3e 100644 --- a/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java +++ b/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java @@ -292,9 +292,10 @@ public class RMatch { if (!o.getCompet().getUuid().equals(connection.pathParam("uuid"))) throw new DForbiddenException("Permission denied"); })) - .call(cm -> Panache.withTransaction( - () -> matchRepository.delete("id IN ?1 AND category = ?2", data.matchesToRemove, cm)) - .call(__ -> SSMatch.sendDeleteMatch(connection, data.matchesToRemove))) + .call(cm -> data.matchesToRemove.isEmpty() ? Uni.createFrom().voidItem() : + (Panache.withTransaction( + () -> matchRepository.delete("id IN ?1 AND category = ?2", data.matchesToRemove, cm)) + .call(__ -> SSMatch.sendDeleteMatch(connection, data.matchesToRemove)))) .call(cm -> Panache.withSession(() -> matchRepository.list("id IN ?1 AND category = ?2", Stream.concat(data.matchOrderToUpdate.keySet().stream(), data.matchPouleToUpdate.keySet().stream()) @@ -305,19 +306,21 @@ public class RMatch { if (data.matchOrderToUpdate.containsKey(model.getId())) model.setCategory_ord(data.matchOrderToUpdate.get(model.getId())); })) - .call(mm -> Panache.withTransaction(() -> matchRepository.persist(mm))) + .call(mm -> mm.isEmpty() ? Uni.createFrom().voidItem() : + Panache.withTransaction(() -> matchRepository.persist(mm))) .invoke(mm -> matches.addAll(mm.stream().map(MatchEntity::fromModel).toList()))) ) .chain(categoryModel -> { Uni> uni = Uni.createFrom().item(new ArrayList<>()); for (AddMatch match : data.newMatch) uni = uni.call(l -> creatMatch(categoryModel, match).invoke(l::add)); - Uni> finalUni = uni; - return Panache.withSession(() -> finalUni); + Uni> finalUni = uni; + return Panache.withSession(() -> finalUni); } ) - .chain(mm -> Panache.withTransaction(() -> matchRepository.create(mm)) - .invoke(__ -> matches.addAll(mm.stream().map(MatchEntity::fromModel).toList()))) + .chain(mm -> mm.isEmpty() ? Uni.createFrom().voidItem() : + Panache.withTransaction(() -> matchRepository.create(mm)) + .invoke(__ -> matches.addAll(mm.stream().map(MatchEntity::fromModel).toList()))) .call(__ -> SSMatch.sendMatch(connection, matches)) .replaceWithVoid(); }