From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation
---
apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/RoutingCheckerImpl.java | 86 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 86 insertions(+), 0 deletions(-)
diff --git a/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/RoutingCheckerImpl.java b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/RoutingCheckerImpl.java
new file mode 100644
index 0000000..f86354c
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/RoutingCheckerImpl.java
@@ -0,0 +1,86 @@
+package com.megatim.apifdxweb.core.impl.helper;
+
+import com.megatim.apifdxweb.core.ifaces.helper.RoutingChecker;
+import com.megatim.apifdxweb.core.ifaces.referentiel.ParticipantManager;
+import com.megatim.apifdxweb.core.ifaces.referentiel.RoutageManager;
+import com.megatim.apifdxweb.core.ifaces.referentiel.natureproduction.NatureProductionFichierManager;
+import com.megatim.apifdxweb.tools.exceptions.ApplicationForbidenException;
+import com.megatim.fdxcommons.model.integration.ColumnDefinition;
+import com.megatim.fdxcommons.model.pojo.DataInMemory;
+import com.megatim.fdxcommons.model.referentiel.TypeFichier;
+import com.megatim.fdxcommons.model.referentiel.natureproduction.NatureProduction;
+import com.megatim.fdxcommons.model.referentiel.natureproduction.NatureProductionFichier;
+import com.megatim.fdxcommons.model.referentiel.natureproduction.NatureProductionFichierId;
+import com.megatim.fdxcommons.tools.exceptions.CommonRessourceNotFoundException;
+import java.util.Map;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+
+/**
+ *
+ * @author lenovo
+ */
+@Dependent
+public class RoutingCheckerImpl implements RoutingChecker {
+
+ @Inject
+ protected ParticipantManager participantManager;
+
+ @Inject
+ private RoutageManager routageManager;
+
+ @Inject
+ private NatureProductionFichierManager natureProdFichManager;
+
+ @Override
+ public void stopIfNatureProductionIsNotCumulative(String codeTypeFichier, String referentielEncours) {
+ NatureProductionFichierId id = new NatureProductionFichierId(codeTypeFichier, referentielEncours);
+ NatureProductionFichier natureProdFich = natureProdFichManager.getById(id);
+
+ if (natureProdFich == null || !natureProdFich.getNatureProduction().equals(NatureProduction.CUMMULATIVE)) {
+ throw new ApplicationForbidenException("Cette opération n'est pas accessible pour ce type de fichier");
+ }
+ }
+
+ @Override
+ public void stopIfNotProducer(String codeTypeFichier, DataInMemory dataInMemory, String codeParticipant) {
+ if (!dataInMemory.getTypeFichierToParticipantsEnvoi().get(codeTypeFichier).contains(codeParticipant)) {
+ throw new ApplicationForbidenException("Impossible de continuer la requête car le participant " + codeParticipant + " n'est pas producteur du type de fichier " + codeTypeFichier);
+ }
+ }
+
+ @Override
+ public void stopIfNotConsumer(String codeTypeFichier, DataInMemory dataInMemory, String codeParticipant) {
+ if (!dataInMemory.getTypeFichierToParticipantsReception().get(codeTypeFichier).contains(codeParticipant)) {
+ throw new ApplicationForbidenException("Impossible de continuer la requête car le participant " + codeParticipant + " n'est pas consommateur du type de fichier " + codeTypeFichier);
+ }
+ }
+
+ @Override
+ public void stopIfCurrentReferentielNotExists(DataInMemory data) {
+ if (data.getReferentielEnCours() == null) {
+ throw new CommonRessourceNotFoundException("Aucun référentiel en cours");
+ }
+ }
+
+ /**
+ * Check whether there is a current ref in database
+ *
+ * @param codeTypeFichier
+ * @param dataInMemory
+ */
+ @Override
+ public void stopIfTypeFichierNotExists(String codeTypeFichier, DataInMemory dataInMemory) {
+ TypeFichier typeFich = dataInMemory.getCodeTypeFichierToTypeFichiers().get(codeTypeFichier);
+
+ if (typeFich == null) {
+ throw new CommonRessourceNotFoundException("TypeFichier '" + codeTypeFichier + "' inexistant");
+ }
+
+ Map<String, ColumnDefinition> columnsDefinitionMap = dataInMemory.getTypeFichierToColumnDefinitions().get(codeTypeFichier);
+ if (columnsDefinitionMap == null || columnsDefinitionMap.isEmpty()) {
+ throw new CommonRessourceNotFoundException("La structure du typeFichier '" + codeTypeFichier + "' est introuvable");
+ }
+ }
+
+}
--
Gitblit v1.10.0