Skip to content
Théophile Merlière edited this page Apr 12, 2023 · 1 revision

Ces routes sont exclusivement accessible aux administrateurs, elle requiert une authentification pour être utilisée. Toutes les routes de cette API utilisent un middleware spécifique appelé ensureIsAdmin, qui vérifie si l'utilisateur qui effectue la requête est un administrateur.

Chefs de file

Routes

Les routes suivantes sont disponibles :

  • GET /chefs-de-file/:chefDeFileId : récupère les informations d'un chef de file par son identifiant.
  • PUT /chefs-de-file/:chefDeFileId : met à jour les informations d'un chef de file par son identifiant.
  • GET /chefs-de-file : récupère la liste de tous les chefs de file.
  • POST /chefs-de-file : crée un nouveau chef de file.

Modèle

Le modèle ChefDeFile définit les attributs suivants :

  • nom : le nom du chef de file (string, min 3 caractères, max 200 caractères, requis).
  • email : l'adresse e-mail du chef de file (string, format e-mail, requis).
  • perimetre : le périmètre d'action du chef de file (array, contenant des strings avec un type de territoire et un code, min 1 élément, requis).
  • signataireCharte : indique si le chef de file est signataire de la charte (boolean, optionnel, valeur par défaut false). Le périmètre d'action est composé de la concaténation du type de territoire (epci, departement, commune) et du code correspondant (code INSEE pour les communes, code département pour les départements, SIREN pour les EPCI), séparés par un tiret.

Fonctions du modèle

Le modèle ChefDeFile fournit les fonctions suivantes :

  • create(payload) : crée un nouveau chef de file avec les données du payload.
  • update(id, payload) : met à jour un chef de file existant avec les données du payload.
  • fetch(chefDeFileId) : récupère un chef de file par son identifiant.
  • fetchAll() : récupère la liste de tous les chefs de file.

Mandataires

Routes

Les routes suivantes sont disponibles :

  • GET /mandataires/:mandataireId : récupère les informations d'un mandataire par son identifiant.
  • PUT /mandataires/:mandataireId : met à jour les informations d'un mandataire par son identifiant.
  • GET /mandataires : récupère la liste de tous les mandataires.
  • POST /mandataires : crée un nouveau mandataire.

Modèle

Le modèle Mandataire définit les attributs suivants :

  • nom : le nom du mandataire (string, min 3 caractères, max 200 caractères, requis).
  • email : l'adresse e-mail du mandataire (string, format e-mail, requis).

Fonctions du modèle

Le modèle Mandataire fournit les fonctions suivantes :

  • create(payload) : crée un nouveau mandataire avec les données du payload.
  • update(id, payload) : met à jour un mandataire existant avec les données du payload.
  • fetch(mandataireId) : récupère un mandataire par son identifiant.
  • fetchAll() : récupère la liste de tous les mandataires.

Clients

Routes

Les routes suivantes sont disponibles :

  • GET /clients/:clientId : récupère les informations d'un client par son identifiant.
  • PUT /clients/:clientId : met à jour les informations d'un client par son identifiant.
  • GET /clients : récupère la liste de tous les clients.
  • POST /clients : crée un nouveau client.
  • POST /clients/:clientId/token/renew : renouvelle le token d'un client par son identifiant.

Modèle

Le modèle Client définit les attributs suivants :

  • mandataire : l'identifiant du mandataire associé (string, ObjectId, requis).
  • chefDeFile : l'identifiant du chef de file associé (string, ObjectId, optionnel).
  • nom : le nom du client (string, min 3 caractères, max 200 caractères, requis).
  • active : indique si le client est actif ou non (booléen, optionnel).
  • options : les options du client (objet, optionnel).
  • relaxMode : mode relax du client (booléen, optionnel, par défaut false).

Fonctions du modèle

Le modèle Client fournit les fonctions suivantes :

  • create(payload) : crée un nouveau client avec les données du payload.
  • update(id, payload) : met à jour un client existant avec les données du payload.
  • renewToken(id) : renouvelle le token d'un client.
  • fetch(clientId) : récupère un client par son identifiant.
  • fetchAll() : récupère la liste de tous les clients.
  • computePublicClient(clientId) : calcule les informations publiques d'un client.
  • filterSensitiveFields(client) : filtre les champs sensibles d'un client.