From 3b5955ff31bdc5e78059e36f4b1ff56d3b8e92a5 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Fri, 2 Jan 2026 23:44:53 +0100 Subject: [PATCH] fix: rm match with cardboard --- .../java/fr/titionfire/ffsaf/ws/recv/RCategorie.java | 9 +++++---- src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java | 8 +++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java index 68e01ac..ecb9cde 100644 --- a/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java +++ b/src/main/java/fr/titionfire/ffsaf/ws/recv/RCategorie.java @@ -3,10 +3,7 @@ package fr.titionfire.ffsaf.ws.recv; import fr.titionfire.ffsaf.data.model.CategoryModel; import fr.titionfire.ffsaf.data.model.MatchModel; import fr.titionfire.ffsaf.data.model.TreeModel; -import fr.titionfire.ffsaf.data.repository.CategoryRepository; -import fr.titionfire.ffsaf.data.repository.CompetitionRepository; -import fr.titionfire.ffsaf.data.repository.MatchRepository; -import fr.titionfire.ffsaf.data.repository.TreeRepository; +import fr.titionfire.ffsaf.data.repository.*; import fr.titionfire.ffsaf.domain.entity.MatchEntity; import fr.titionfire.ffsaf.domain.entity.TreeEntity; import fr.titionfire.ffsaf.rest.exception.DForbiddenException; @@ -46,6 +43,9 @@ public class RCategorie { @Inject TreeRepository treeRepository; + @Inject + CardboardRepository cardboardRepository; + private Uni getById(long id, WebSocketConnection connection) { return categoryRepository.findById(id) .invoke(Unchecked.consumer(o -> { @@ -210,6 +210,7 @@ public class RCategorie { public Uni deleteCategory(WebSocketConnection connection, Long id) { return getById(id, connection) .call(cat -> Panache.withTransaction(() -> treeRepository.delete("category = ?1", cat.getId()) + .call(__ -> cardboardRepository.delete("match.category = ?1", cat)) .call(__ -> matchRepository.delete("category = ?1", cat)))) .chain(cat -> Panache.withTransaction(() -> categoryRepository.delete(cat))) .invoke(__ -> SSCategorie.sendDelCategory(connection, id)) 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 d48707d..a3437c8 100644 --- a/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java +++ b/src/main/java/fr/titionfire/ffsaf/ws/recv/RMatch.java @@ -44,6 +44,9 @@ public class RMatch { @Inject CompetitionGuestRepository competitionGuestRepository; + @Inject + CardboardRepository cardboardRepository; + private Uni getById(long id, WebSocketConnection connection) { return matchRepository.findById(id) .invoke(Unchecked.consumer(o -> { @@ -277,7 +280,10 @@ public class RMatch { @WSReceiver(code = "deleteMatch", permission = PermLevel.ADMIN) public Uni deleteMatch(WebSocketConnection connection, Long idMatch) { return getById(idMatch, connection) - .chain(matchModel -> Panache.withTransaction(() -> matchRepository.delete(matchModel))) + .map(__ -> idMatch) + .chain(l -> Panache.withTransaction(() -> + cardboardRepository.delete("match.id = ?1", l) + .chain(__ -> matchRepository.delete("id = ?1", l)))) .invoke(__ -> SSMatch.sendDeleteMatch(connection, idMatch)) .replaceWithVoid(); }