Aller au contenu principal

Constants

Description Générale

Le fichier responses.const.ts contient un ensemble de constantes utilisées pour standardiser les messages de réponse dans le backend de l'application AlgoForge. Ces messages sont organisés par catégories (utilisateurs, tokens, authentification, algorithmes, etc.) et couvrent les cas de succès, d'erreurs, et de retours généraux. Ce fichier permet de centraliser les messages pour garantir la cohérence et faciliter la maintenance.


Structure des Réponses

1. Catégorie : User

Cette catégorie regroupe les messages liés aux utilisateurs.

Messages d'Erreur :

  • Email_already_exists : "Email déjà utilisé."
  • Not_found_or_already_verified : "Utilisateur introuvable ou déjà vérifié."
  • Not_verified : "Utilisateur non vérifié."
  • Invalid_password : "Mot de passe incorrect."
  • Invalid_profile_url : "URL de photo de profil invalide."
  • Not_found : "Utilisateur introuvable."

Sous-Catégorie : Errors

  • While_creating_user : "Erreur lors de la création de l'utilisateur."
  • While_confirming_user : "Erreur lors de la confirmation de l'inscription."

Sous-Catégorie : Success

  • Created : "Utilisateur créé."
  • Updated : "Utilisateur mis à jour."
  • Deleted : "Utilisateur supprimé."
  • Confirmed : "Inscription confirmée."
  • Found : "Utilisateur trouvé."

2. Catégorie : Token

Cette catégorie regroupe les messages liés aux tokens d'authentification.

Messages d'Erreur :

  • Missing : "Token manquant."
  • Not_found : "Token introuvable."
  • Invalid : "Token invalide."
  • Expired : "Token expiré."

Sous-Catégorie : Errors

  • While_creating_token : "Erreur lors de la création du token de confirmation."

Sous-Catégorie : Success

  • Token_created : "Token créé."
  • Valid : "Token valide."

3. Catégorie : Auth

Cette catégorie regroupe les messages liés à l'authentification.

Sous-Catégorie : Success

  • Logged_in : "Connexion réussie."
  • Logged_out : "Déconnexion réussie."

4. Catégorie : Algo

Cette catégorie regroupe les messages liés aux algorithmes.

Messages d'Erreur :

  • Forbidden_create : "Vous n'avez pas les droits pour créer cet algorithme."
  • Forbidden_update : "Vous n'avez pas les droits pour modifier cet algorithme."
  • Not_found : "Algorithme non trouvé."
  • Invalid : "Algorithme invalide."

Sous-Catégorie : By_User

  • Not_found : "Aucun algorithme trouvé."
  • Found : "Algorithmes trouvés."

Sous-Catégorie : Errors

  • While_deleting_algo : "Erreur lors de la suppression de l'algorithme."

Sous-Catégorie : Success

  • Created : "Algorithme créé."
  • Updated : "Algorithme mis à jour."
  • Deleted : "Algorithme supprimé."
  • Found : "Algorithme trouvé."

5. Catégorie : General

Cette catégorie regroupe les messages généraux applicables à plusieurs contextes.

Messages Généraux :

  • Invalid_data : "Données invalides."
  • Missing_data : "Il manque des données."
  • Forbidden : "Permission refusée."

Utilisation dans le Code

Exemple : Utilisation dans un Contrôleur

Les constantes définies dans ce fichier sont utilisées pour standardiser les réponses dans les contrôleurs et services.

Exemple de Code :

import { Responses } from "../../constants/responses.const";

private async register(req: Request, res: Response) {
const { email, password, pseudo } = req.body;

if (!email || !password || !pseudo) {
return res
.status(400)
.json({ message: Responses.General.Missing_data });
}

const emailExists = await this.usersService.checkEmailExists(email);
if (emailExists) {
return res
.status(409)
.json({ message: Responses.User.Email_already_exists });
}

// Suite de la logique...
}

Avantages de l'Approche

  1. Cohérence :

    • Les messages de réponse sont uniformes dans toute l'application.
  2. Facilité de Maintenance :

    • Les messages peuvent être modifiés en un seul endroit sans avoir à parcourir tout le code.
  3. Lisibilité :

    • Les développeurs peuvent facilement comprendre le type de réponse attendu en consultant les constantes.
  4. Réutilisabilité :

    • Les mêmes messages peuvent être utilisés dans plusieurs parties de l'application (contrôleurs, services, middlewares).