From d84ec9e1b4e58ab81f29ae85fe2ec2d920913eb8 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Thu, 25 Jan 2024 22:43:25 +0100 Subject: [PATCH] feat: notify Membre update to ws client --- .../ffsaf/domain/service/MembreService.java | 8 +++++- .../ffsaf/net2/request/SReqClub.java | 24 +++++++++++++++++ .../ffsaf/net2/request/SReqComb.java | 27 +++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/main/java/fr/titionfire/ffsaf/net2/request/SReqClub.java create mode 100644 src/main/java/fr/titionfire/ffsaf/net2/request/SReqComb.java diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java index 8fb96ae..7cb0f68 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java @@ -3,7 +3,9 @@ package fr.titionfire.ffsaf.domain.service; import fr.titionfire.ffsaf.data.model.MembreModel; import fr.titionfire.ffsaf.data.repository.ClubRepository; import fr.titionfire.ffsaf.data.repository.CombRepository; +import fr.titionfire.ffsaf.net2.ServerCustom; import fr.titionfire.ffsaf.net2.data.SimpleCombModel; +import fr.titionfire.ffsaf.net2.request.SReqComb; import fr.titionfire.ffsaf.rest.from.FullMemberForm; import fr.titionfire.ffsaf.utils.Pair; import io.quarkus.hibernate.reactive.panache.Panache; @@ -25,6 +27,8 @@ public class MembreService { CombRepository repository; @Inject ClubRepository clubRepository; + @Inject + ServerCustom serverCustom; public SimpleCombModel find(int licence, String np) throws Throwable { return VertxContextSupport.subscribeAndAwait(() -> Panache.withTransaction(() -> @@ -59,6 +63,8 @@ public class MembreService { m.setGrade_arbitrage(membre.getGrade_arbitrage()); m.setEmail(membre.getEmail()); return Panache.withTransaction(() -> repository.persist(m)); - }).map(__ -> "OK"); + }) + .invoke(membreModel -> SReqComb.sendIfNeed(serverCustom.clients, SimpleCombModel.fromModel(membreModel))) + .map(__ -> "OK"); } } diff --git a/src/main/java/fr/titionfire/ffsaf/net2/request/SReqClub.java b/src/main/java/fr/titionfire/ffsaf/net2/request/SReqClub.java new file mode 100644 index 0000000..7edf14d --- /dev/null +++ b/src/main/java/fr/titionfire/ffsaf/net2/request/SReqClub.java @@ -0,0 +1,24 @@ +package fr.titionfire.ffsaf.net2.request; + +import fr.titionfire.ffsaf.net2.Client_Thread; +import fr.titionfire.ffsaf.net2.data.SimpleClubModel; + +import java.util.ArrayList; + +public class SReqClub { + public static void sendIfNeed(ArrayList client_Thread, SimpleClubModel club) { + for (Client_Thread client : client_Thread) { + client.sendNotify(club, "sendClub"); + } + } + public static void sendAddIfNeed(ArrayList client_Thread, SimpleClubModel club) { + for (Client_Thread client : client_Thread) { + client.sendNotify(club, "sendAddClub"); + } + } + public static void sendRmIfNeed(ArrayList client_Thread, long club) { + for (Client_Thread client : client_Thread) { + client.sendNotify(club, "sendRmClub"); + } + } +} diff --git a/src/main/java/fr/titionfire/ffsaf/net2/request/SReqComb.java b/src/main/java/fr/titionfire/ffsaf/net2/request/SReqComb.java new file mode 100644 index 0000000..f0b841d --- /dev/null +++ b/src/main/java/fr/titionfire/ffsaf/net2/request/SReqComb.java @@ -0,0 +1,27 @@ +package fr.titionfire.ffsaf.net2.request; + +import fr.titionfire.ffsaf.net2.Client_Thread; +import fr.titionfire.ffsaf.net2.data.SimpleCombModel; + +import java.util.ArrayList; + +public class SReqComb { + + public static void sendIfNeed(ArrayList client_Thread, SimpleCombModel comb) { + for (Client_Thread client : client_Thread) { + client.sendNotify(comb, "sendComb"); + } + } + + public static void sendIfNeedAdd(ArrayList client_Thread, SimpleCombModel comb) { + for (Client_Thread client : client_Thread) { + client.sendNotify(comb, "sendAddComb"); + } + } + + public static void sendRm(ArrayList client_Thread, long id) { + for (Client_Thread client : client_Thread) { + client.sendNotify(id, "sendRmComb"); + } + } +}