Liste des Routes de l'Application

AuthController

/auth GET

Retourne l'état de l'authentification (session en cours).

/auth/signin/buyer POST

Permet à un acheteur de se connecter à l'application.

/auth/signup/buyer POST

Permet à un acheteur de s'inscrire.

/auth/signin/seller POST

Permet à un vendeur de se connecter à l'application.

/auth/signup/seller POST

Permet à un vendeur de s'inscrire.

/auth/signin/admin POST

Permet à un administrateur de se connecter.

/auth/logout POST

Déconnecte l'utilisateur actuellement connecté.

/auth/session GET

Retourne les informations de session de l'utilisateur connecté.

/auth/send-email POST

Envoie un email de vérification ou de réinitialisation de mot de passe.

/auth/reset-password POST

Permet à un utilisateur de réinitialiser son mot de passe.

/auth/me/admin/signup POST

Permet à un administrateur de s'inscrire.

UsersController

/users GET

Retourne la liste de tous les utilisateurs.

/users/:user_id GET

Retourne les informations d'un utilisateur spécifique.

/users/me/info GET

Retourne les informations de l'utilisateur connecté.

/users/me/role GET

Retourne le rôle de l'utilisateur connecté.

/users/:user_id DELETE

Supprime un utilisateur spécifique.

/users/me/account DELETE

Supprime le compte de l'utilisateur connecté.

/users/me/account PUT

Met à jour les informations du compte de l'utilisateur connecté.

/users/:user_id PUT

Met à jour les informations d'un utilisateur spécifique.

/users/set-role/:user_id PUT

Assigne un rôle à un utilisateur spécifique.

/users/connected/products GET

Retourne les produits de l'utilisateur connecté.

/users/connected/products/sold GET

Retourne les produits vendus par l'utilisateur connecté.

ProductsController

/products/add-product POST

Ajoute un nouveau produit à la base de données.

/products/available/all GET

Retourne tous les produits disponibles.

/products/all GET

Retourne tous les produits.

/products/pending/all GET

Retourne tous les produits en attente d'approbation.

/products/admin/approved/product=:productId PUT

Approuve un produit pour qu'il soit visible.

/products/id=:productId GET

Retourne un produit spécifique par son ID.

/products/category=:name GET

Retourne les produits d'une catégorie spécifique.

/products/all-category GET

Retourne toutes les catégories de produits.

/products/id=:productId DELETE

Supprime un produit spécifique par son ID.

CartController

/cart/add-item/product=:productId POST

Ajoute un produit au panier de l'utilisateur.

/cart/delete-item/product=:productId DELETE

Supprime un produit du panier de l'utilisateur.

/cart/clear DELETE

Vider le panier de l'utilisateur.

/cart/update-item/product=:productId PUT

Met à jour la quantité d'un produit dans le panier de l'utilisateur.

/cart/me GET

Retourne le panier de l'utilisateur connecté.

TransactionController

/transaction/create POST

Crée une nouvelle transaction (commande) pour un acheteur connecté.

/transaction/seller/confirm/product PUT

Permet au vendeur de confirmer la transaction d'un produit en fonction de l'ID de la commande et de l'ID du produit.

/transaction/cancel/id=:orderId PUT

Annule une commande spécifique pour un acheteur (basée sur l'ID de la commande).

/transaction/all-orders GET

Retourne toutes les commandes (réservé aux administrateurs).

/transaction/me/all-orders GET

Retourne toutes les commandes de l'utilisateur connecté (acheteur).

/transaction/me/all-orders/:status GET

Retourne toutes les commandes de l'utilisateur connecté avec un statut spécifique (par exemple, "en cours", "livré", etc.).

/transaction/me/all-orders/id/:orderId GET

Retourne une commande spécifique de l'utilisateur connecté en utilisant l'ID de la commande.

/transaction/me/seller/products/in/all_orders GET

Retourne les produits d'un vendeur présents dans toutes les commandes.

/transaction/approve-order-item PUT

Permet au vendeur d'approuver ou de rejeter un produit dans une commande spécifique en fonction de la décision (approuver ou rejeter) et des IDs de produit et de commande.

InvoiceController

/invoice/generate/:orderId POST

Génère une facture pour une transaction spécifique.

/invoice/download/:invoiceId GET

Télécharge la facture associée à un ID de facture spécifique.

/invoice/all GET

Retourne toutes les factures du système.

/invoice/me/all GET

Retourne toutes les factures de l'utilisateur connecté.

/invoice/invoiceId/:invoiceId GET

Retourne une facture spécifique par son ID de facture.

/invoice/validate/:invoiceId PUT

Valide une facture spécifique (approuve son paiement).

/invoice/delete/invoice/:invoiceId DELETE

Supprime une facture spécifique par son ID.

/invoice/order/:orderId/me GET

Retourne la facture liée à une commande spécifique de l'utilisateur connecté.

/invoice/me/status/:status GET

Retourne toutes les factures d'un utilisateur avec un statut spécifique.

AddressController

/address/add POST

Ajoute une nouvelle adresse pour l'utilisateur.

/address/:addressId GET

Retourne les détails d'une adresse spécifique.

/address/user/:userId GET

Retourne toutes les adresses d'un utilisateur.

/address/:addressId PUT

Met à jour les informations d'une adresse spécifique.

/address/:addressId DELETE

Supprime une adresse spécifique.

ReviewController

/review/add POST

Ajoute une revue pour un produit spécifique.

/review/product/:productId GET

Retourne toutes les revues d'un produit spécifique.

/review/user/:userId GET

Retourne toutes les revues laissées par un utilisateur spécifique.

/review/:reviewId DELETE

Supprime une revue spécifique.