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-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/dataproduction/DataProductionRSImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 163 insertions(+), 0 deletions(-)
diff --git a/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/dataproduction/DataProductionRSImpl.java b/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/dataproduction/DataProductionRSImpl.java
new file mode 100644
index 0000000..1fba3e1
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/dataproduction/DataProductionRSImpl.java
@@ -0,0 +1,163 @@
+package com.megatim.apifdxweb.service.impl.dataproduction;
+
+import com.megatim.apifdxweb.core.ifaces.administration.UserManager;
+import com.megatim.apifdxweb.core.ifaces.helper.DataProductionOperations;
+import com.megatim.apifdxweb.model.administration.User;
+import com.megatim.apifdxweb.model.request.UpdateRequest;
+import com.megatim.apifdxweb.service.ifaces.dataproduction.DataProductionRS;
+import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
+import com.mgt.rs.security.core.common.AuthenticatedUser;
+import com.mgt.rs.security.core.common.SecuredClass;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import java.util.LinkedHashMap;
+import java.util.List;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.event.Observes;
+import javax.inject.Inject;
+import javax.ws.rs.Path;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Response;
+
+/**
+ *
+ * @author lenovo
+ */
+@SecuredClass(module = "Production des fichiers", path = "production des fichiers", description = "Sécurisation des endpoints de l'API Fdx")
+@RequestScoped
+@Path("produce")
+@Api(value = "Ressources de production des fichiers échangés")
+public class DataProductionRSImpl implements DataProductionRS {
+
+ @Inject
+ private DataProductionOperations dataProductionOperations;
+
+ @Inject
+ private UserManager userManager;
+
+ private String codeParticipant;
+
+ public void handleAuthenticationEvent(@Observes @AuthenticatedUser String connectedUserName) {
+ User user = userManager.recuperUtilisateur(connectedUserName);
+ this.codeParticipant = user != null ? user.getParticipant().getCode() : null;
+ }
+
+ @Override
+ @ApiOperation(value = "Ajoute plusieurs lignes pour le type de fichier en paramètre",
+ notes = "Cette méthode permet d'ajouter une liste d'éléments dont la structure de chaque "
+ + "élément est conforme à celle spécifiée dans le manuel technique pour le type de fichier passé en paramètre."
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête)"),
+ @ApiResponse(code = 422, message = "La structure des données à insérer n'est pas conforme à la structure attendue")})
+ public Response saveAll(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération d'ajout des lignes", required = true) String codeTypeFichier,
+ @ApiParam(value = "Liste d'objets dont la structure est conforme à celle du type de fichier indiqué en parametre", required = true) List<LinkedHashMap<String, Object>> datas
+ ) {
+
+ dataProductionOperations.saveAll(codeTypeFichier, datas, codeParticipant);
+ return Response.ok().build();
+ }
+
+ @Override
+ @ApiOperation(value = "Ajout d'une ligne pour le type de fichier en paramètre",
+ notes = "Cette méthode permet d'ajouter un élément dont la structure est conforme à celle spécifiée dans le manuel technique pour le type de fichier passé en paramètre.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête)"),
+ @ApiResponse(code = 422, message = "La structure de donnée à insérer n'est pas conforme à la structure attendue")})
+ public Response save(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération d'ajout d'une ligne", required = true) String codeTypeFichier,
+ @ApiParam(value = "Objet dont la structure est conforme à celle du type de fichier indiqué en parametre", required = true) LinkedHashMap<String, Object> data
+ ) {
+
+ dataProductionOperations.saveOne(codeTypeFichier, data, codeParticipant);
+ return Response.ok().build();
+ }
+
+ @Override
+ @ApiOperation(value = "Mise à jour de plusieurs lignes pour le type de fichier en paramètre selon un ensemble de critères",
+ notes = "Cette méthode permet de mettre à jour les lignes associées au type de fichier en paramètre selon un ensemble de critère indiqués dans le corps de la requête.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête)"),
+ @ApiResponse(code = 422, message = "Les critères de sélection ou les paramètres de mise à jour de la requête ne sont pas conformes à la structure des champs du type de fichier")})
+ public Response updateAll(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération de mise à jour des lignes", required = true) String codeTypeFichier,
+ @ApiParam(value = "Contient les critères de sélection et les valeurs de mise à jour", required = true) UpdateRequest updateRequest
+ ) {
+ dataProductionOperations.updateAll(codeTypeFichier, updateRequest, codeParticipant);
+ return Response.ok().build();
+ }
+
+ @Override
+ @ApiOperation(value = "Mise à jour d'une ligne pour le type de fichier en paramètre selon un ensemble de critères",
+ notes = "Cette méthode permet de mettre à jour une ligne associée au type de fichier en paramètre selon un ensemble de critères indiqués dans le corps de la requête. "
+ + "Si le filtre selon le critère de sélection ne trouve pas de ligne, nous une erreur 404 est levée. De même, si l'application du filtre sur les critères trouve plus d'une ligne, "
+ + "une erreur 422 est levée pour indiqué le mauvais format de la requête.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête), ou aucune ligne n'a été trouvée"),
+ @ApiResponse(code = 422, message = "Les critères de sélection ou les paramètres de mise à jour de la requête ne sont pas conformes à la structure des champs du type de fichier, "
+ + "ou le résultat de la sélection a retourné plus d'une ligne")})
+ public Response updateOne(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération de mise à jour d'une ligne", required = true) String codeTypeFichier,
+ @ApiParam(value = "Contient les critères de sélection et les valeurs de mise à jour", required = true) UpdateRequest updateRequest
+ ) {
+ dataProductionOperations.updateOne(codeTypeFichier, updateRequest, codeParticipant);
+ return Response.ok().build();
+ }
+
+ @Override
+ @ApiOperation(value = "Suppression des lignes pour le type de fichier en paramètre selon un ensemble de critères",
+ notes = "Cette méthode permet de supprimer une ligne associée au type de fichier en paramètre selon un ensemble de critères indiqués dans le corps de la requête.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête)"),
+ @ApiResponse(code = 422, message = "Les critères de sélection des colonnes de la requête ne sont pas conformes à la structure des champs du type de fichier")})
+ public Response deleteAll(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération de suppression", required = true) String codeTypeFichier,
+ @ApiParam(value = "Liste des critères de sélection des lignes que l'on désire supprimer", required = true) CriteriaEntityFromView criterion
+ ) {
+ dataProductionOperations.deleteAll(codeTypeFichier, criterion, codeParticipant);
+ return Response.ok().build();
+ }
+
+ @Override
+ @ApiOperation(value = "Suppression des lignes pour le type de fichier en paramètre selon un ensemble de critères",
+ notes = "Cette méthode permet de supprimer une ligne associée au type de fichier en paramètre selon un ensemble de critères indiqués dans le corps de la requête.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Données enregistrées avec succès"),
+ @ApiResponse(code = 401, message = "L'appelant n'a pas accès à la ressource"),
+ @ApiResponse(code = 403, message = "Production des données non autorisée pour le noeud associé à l'utilisateur qui exécute la requête"),
+ @ApiResponse(code = 404, message = "Une ressource est introuvable (Type Fichier, Référentiel en cours, Noeud associé à l'utilisateur qui exécute la requête)"),
+ @ApiResponse(code = 422, message = "Les critères de sélection des colonnes de la requête ne sont pas conformes à la structure des champs du type de fichier")})
+ public Response deleteOne(
+ HttpHeaders headers,
+ @ApiParam(value = "Le type de fichier pour lequel on désire effectuer l'opération de suppression", required = true) String codeTypeFichier,
+ @ApiParam(value = "Liste des critères de sélection des lignes que l'on désire supprimer", required = true) CriteriaEntityFromView criterion
+ ) {
+ dataProductionOperations.deleteOne(codeTypeFichier, criterion, codeParticipant);
+ return Response.ok().build();
+ }
+
+}
--
Gitblit v1.10.0