Configure Maven repository for unionflow-server-api dependency

This commit is contained in:
dahoud
2025-12-10 01:08:17 +00:00
commit 4a0c5f9d33
320 changed files with 33373 additions and 0 deletions

View File

@@ -0,0 +1,278 @@
package dev.lions.unionflow.server.resource;
import dev.lions.unionflow.server.api.dto.comptabilite.*;
import dev.lions.unionflow.server.service.ComptabiliteService;
import jakarta.annotation.security.RolesAllowed;
import jakarta.inject.Inject;
import jakarta.validation.Valid;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.util.List;
import java.util.UUID;
import org.jboss.logging.Logger;
/**
* Resource REST pour la gestion comptable
*
* @author UnionFlow Team
* @version 3.0
* @since 2025-01-29
*/
@Path("/api/comptabilite")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RolesAllowed({"ADMIN", "MEMBRE", "USER"})
public class ComptabiliteResource {
private static final Logger LOG = Logger.getLogger(ComptabiliteResource.class);
@Inject ComptabiliteService comptabiliteService;
// ========================================
// COMPTES COMPTABLES
// ========================================
/**
* Crée un nouveau compte comptable
*
* @param compteDTO DTO du compte à créer
* @return Compte créé
*/
@POST
@RolesAllowed({"ADMIN", "MEMBRE"})
@Path("/comptes")
public Response creerCompteComptable(@Valid CompteComptableDTO compteDTO) {
try {
CompteComptableDTO result = comptabiliteService.creerCompteComptable(compteDTO);
return Response.status(Response.Status.CREATED).entity(result).build();
} catch (IllegalArgumentException e) {
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse(e.getMessage()))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la création du compte comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la création du compte comptable: " + e.getMessage()))
.build();
}
}
/**
* Trouve un compte comptable par son ID
*
* @param id ID du compte
* @return Compte comptable
*/
@GET
@Path("/comptes/{id}")
public Response trouverCompteParId(@PathParam("id") UUID id) {
try {
CompteComptableDTO result = comptabiliteService.trouverCompteParId(id);
return Response.ok(result).build();
} catch (jakarta.ws.rs.NotFoundException e) {
return Response.status(Response.Status.NOT_FOUND)
.entity(new ErrorResponse("Compte comptable non trouvé"))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la recherche du compte comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la recherche du compte comptable: " + e.getMessage()))
.build();
}
}
/**
* Liste tous les comptes comptables actifs
*
* @return Liste des comptes
*/
@GET
@Path("/comptes")
public Response listerTousLesComptes() {
try {
List<CompteComptableDTO> result = comptabiliteService.listerTousLesComptes();
return Response.ok(result).build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la liste des comptes comptables");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la liste des comptes comptables: " + e.getMessage()))
.build();
}
}
// ========================================
// JOURNAUX COMPTABLES
// ========================================
/**
* Crée un nouveau journal comptable
*
* @param journalDTO DTO du journal à créer
* @return Journal créé
*/
@POST
@RolesAllowed({"ADMIN", "MEMBRE"})
@Path("/journaux")
public Response creerJournalComptable(@Valid JournalComptableDTO journalDTO) {
try {
JournalComptableDTO result = comptabiliteService.creerJournalComptable(journalDTO);
return Response.status(Response.Status.CREATED).entity(result).build();
} catch (IllegalArgumentException e) {
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse(e.getMessage()))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la création du journal comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la création du journal comptable: " + e.getMessage()))
.build();
}
}
/**
* Trouve un journal comptable par son ID
*
* @param id ID du journal
* @return Journal comptable
*/
@GET
@Path("/journaux/{id}")
public Response trouverJournalParId(@PathParam("id") UUID id) {
try {
JournalComptableDTO result = comptabiliteService.trouverJournalParId(id);
return Response.ok(result).build();
} catch (jakarta.ws.rs.NotFoundException e) {
return Response.status(Response.Status.NOT_FOUND)
.entity(new ErrorResponse("Journal comptable non trouvé"))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la recherche du journal comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la recherche du journal comptable: " + e.getMessage()))
.build();
}
}
/**
* Liste tous les journaux comptables actifs
*
* @return Liste des journaux
*/
@GET
@Path("/journaux")
public Response listerTousLesJournaux() {
try {
List<JournalComptableDTO> result = comptabiliteService.listerTousLesJournaux();
return Response.ok(result).build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la liste des journaux comptables");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la liste des journaux comptables: " + e.getMessage()))
.build();
}
}
// ========================================
// ÉCRITURES COMPTABLES
// ========================================
/**
* Crée une nouvelle écriture comptable
*
* @param ecritureDTO DTO de l'écriture à créer
* @return Écriture créée
*/
@POST
@RolesAllowed({"ADMIN", "MEMBRE"})
@Path("/ecritures")
public Response creerEcritureComptable(@Valid EcritureComptableDTO ecritureDTO) {
try {
EcritureComptableDTO result = comptabiliteService.creerEcritureComptable(ecritureDTO);
return Response.status(Response.Status.CREATED).entity(result).build();
} catch (IllegalArgumentException e) {
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse(e.getMessage()))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la création de l'écriture comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la création de l'écriture comptable: " + e.getMessage()))
.build();
}
}
/**
* Trouve une écriture comptable par son ID
*
* @param id ID de l'écriture
* @return Écriture comptable
*/
@GET
@Path("/ecritures/{id}")
public Response trouverEcritureParId(@PathParam("id") UUID id) {
try {
EcritureComptableDTO result = comptabiliteService.trouverEcritureParId(id);
return Response.ok(result).build();
} catch (jakarta.ws.rs.NotFoundException e) {
return Response.status(Response.Status.NOT_FOUND)
.entity(new ErrorResponse("Écriture comptable non trouvée"))
.build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la recherche de l'écriture comptable");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la recherche de l'écriture comptable: " + e.getMessage()))
.build();
}
}
/**
* Liste les écritures d'un journal
*
* @param journalId ID du journal
* @return Liste des écritures
*/
@GET
@Path("/ecritures/journal/{journalId}")
public Response listerEcrituresParJournal(@PathParam("journalId") UUID journalId) {
try {
List<EcritureComptableDTO> result = comptabiliteService.listerEcrituresParJournal(journalId);
return Response.ok(result).build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la liste des écritures");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la liste des écritures: " + e.getMessage()))
.build();
}
}
/**
* Liste les écritures d'une organisation
*
* @param organisationId ID de l'organisation
* @return Liste des écritures
*/
@GET
@Path("/ecritures/organisation/{organisationId}")
public Response listerEcrituresParOrganisation(@PathParam("organisationId") UUID organisationId) {
try {
List<EcritureComptableDTO> result = comptabiliteService.listerEcrituresParOrganisation(organisationId);
return Response.ok(result).build();
} catch (Exception e) {
LOG.errorf(e, "Erreur lors de la liste des écritures");
return Response.status(Response.Status.BAD_REQUEST)
.entity(new ErrorResponse("Erreur lors de la liste des écritures: " + e.getMessage()))
.build();
}
}
/** Classe interne pour les réponses d'erreur */
public static class ErrorResponse {
public String error;
public ErrorResponse(String error) {
this.error = error;
}
}
}