Aller au contenu

Courriers suivis

Ces routes permettent à l'utilisateur connecté de suivre des courriers, de retirer leur suivi et de consulter la liste ainsi constituée.

La présentation de la liste dépend de la configuration d'affichage des courriers suivis.

Authentification, privilège et périmètre

Les quatre routes exigent l'authentification REST et l'autorisation d'accès à la route. Le contrôleur ne vérifie aucun privilège fonctionnel supplémentaire.

Le suivi est propre à l'utilisateur connecté : un utilisateur ne peut ni créer ni supprimer le suivi d'un autre utilisateur. Une authentification absente ou invalide renvoie 401 avec {"errors":"Authentication Failed"}. Une route indisponible pour l'utilisateur renvoie 403 avec {"errors":"Service forbidden"}.

Suivre des courriers

Cette route ajoute les courriers à la liste de suivi de l'utilisateur connecté. Un courrier déjà suivi est ignoré.

Route

POST /rest/resources/follow

Paramètres

Body

Valeur Type Obligatoire Description
resources array d'integer Oui Identifiants des courriers à suivre.
{
  "resources": [124, 125]
}

Tous les courriers transmis doivent appartenir au périmètre de l'utilisateur. Si un seul courrier est hors périmètre, aucun suivi n'est créé pour la requête.

Retour

Code HTTP Type Description Exemple
200 object Nombre de nouveaux suivis créés dans followed. {"followed":2}
200 object Tous les courriers étaient déjà suivis. {"followed":0}
401 object Authentification absente ou invalide. {"errors":"Authentication Failed"}
403 object Au moins un courrier est hors du périmètre utilisateur. {"errors":"Document out of perimeter"}
403 object Route indisponible pour l'utilisateur authentifié. {"errors":"Service forbidden"}

Ne plus suivre des courriers

Cette route supprime les suivis appartenant à l'utilisateur connecté. Un identifiant non suivi par cet utilisateur est ignoré.

Route

DELETE /rest/resources/unfollow

Paramètres

Body

Valeur Type Obligatoire Description
resources array d'integer Oui Identifiants des courriers à ne plus suivre.
{
  "resources": [124, 125]
}

Retour

Code HTTP Type Description Exemple
200 object Nombre de suivis supprimés dans unFollowed. {"unFollowed":2}
200 object Aucun identifiant n'était suivi par l'utilisateur courant. {"unFollowed":0}
401 object Authentification absente ou invalide. {"errors":"Authentication Failed"}
403 object Route indisponible pour l'utilisateur authentifié. {"errors":"Service forbidden"}

Lister les courriers suivis

Cette route retourne la liste paginée et filtrée des courriers suivis par l'utilisateur connecté.

Route

GET /rest/followedResources

Paramètres

Query string

Valeur Type Obligatoire Valeur par défaut Description
offset integer Non 0 Position du premier courrier retourné. Une valeur non numérique est remplacée par la valeur par défaut.
limit integer Non 10 Nombre maximal de courriers retournés. Une valeur non numérique est remplacée par la valeur par défaut.
delayed string Non La valeur true conserve uniquement les courriers dont la date limite de traitement est dépassée.
search string Non Recherche sur le numéro chrono et le sujet. Une recherche de moins de deux caractères est ignorée.
priorities string Non Identifiants de priorités séparés par des virgules.
categories string Non Identifiants de catégories séparés par des virgules.
statuses string Non Identifiants de statuts séparés par des virgules.
entities string Non Identifiants des entités traitantes séparés par des virgules.
entitiesChildren string Non Identifiants des entités dont les sous-entités sont incluses, séparés par des virgules.
doctypes string Non Identifiants de types de courrier séparés par des virgules.
folders string Non Identifiants de dossiers séparés par des virgules.
order string Non creation_date Champ et direction du tri, par exemple creation_date DESC.

Les champs de tri pris en charge sont dest_user, category_id, creation_date, process_limit_date, entity_label, res_id, alt_identifier, subject, priority, status et type_label. Un champ personnalisé d'indexation peut également être utilisé avec son identifiant technique.

Exemple

GET /rest/followedResources?limit=10&offset=0&statuses=A_TRA&order=creation_date%20DESC

Périmètre

La liste est construite à partir des suivis de l'utilisateur. Un courrier qui a quitté son périmètre peut donc rester présent dans la liste :

Retour

Code HTTP Type Description Exemple
200 object Liste paginée des courriers suivis. Voir l'exemple ci-dessous.
401 object Authentification absente ou invalide. {"errors":"Authentication Failed"}
403 object Route indisponible pour l'utilisateur authentifié. {"errors":"Service forbidden"}
{
  "resources": [
    {
      "resId": 124,
      "chrono": "MAARCH/2026/124",
      "subject": "Demande de renseignement",
      "statusLabel": "Nouveau courrier pour le service",
      "statusImage": "fm-letter-status-new",
      "priorityColor": "#009dc5",
      "countAttachments": 1,
      "hasDocument": true,
      "mailTracking": true,
      "allowed": true
    }
  ],
  "countResources": 1,
  "allResources": [124],
  "templateColumns": 7
}

Données

Valeur Type Description
resources array Courriers de la page courante, enrichis selon la configuration d'affichage.
resources[].resId integer Identifiant du courrier.
resources[].chrono string ou null Numéro chrono du courrier.
resources[].subject string ou null Objet du courrier.
resources[].statusLabel string Libellé du statut.
resources[].statusImage string Icône associée au statut.
resources[].priorityColor string ou null Couleur associée à la priorité.
resources[].countAttachments integer Nombre de pièces jointes visibles comptabilisées.
resources[].hasDocument boolean Indique si le courrier possède un document principal.
resources[].mailTracking boolean Vaut true pour un courrier suivi.
resources[].allowed boolean Indique si le courrier est accessible selon le périmètre ou le privilège dédié.
countResources integer Nombre total de courriers suivis correspondant aux filtres, avant pagination.
allResources array d'integer Identifiants de tous les courriers correspondant aux filtres, avant pagination.
templateColumns integer Nombre de colonnes principales défini par admin_followed_mail, ou 0 sans configuration exploitable.

Lister les filtres des courriers suivis

Cette route retourne les valeurs de filtre disponibles parmi les courriers suivis. Les paramètres de recherche et de filtre de la route précédente peuvent être transmis pour recalculer les valeurs proposées.

Route

GET /rest/followedResources/filters

Paramètres

Query string

La route accepte delayed, search, priorities, categories, statuses, entities, entitiesChildren, doctypes et folders, avec les mêmes formats que GET /rest/followedResources.

Pour chaque famille, le calcul applique les autres filtres actifs sans appliquer la sélection de la famille elle-même. Une famille contenant moins de deux valeurs distinctes est retournée sous la forme d'un tableau vide.

Retour

Code HTTP Type Description Exemple
200 object Valeurs de filtre disponibles et nombre de courriers associés. Voir l'exemple ci-dessous.
200 object Aucun courrier suivi : toutes les familles sont des tableaux vides. Voir l'exemple ci-dessous.
401 object Authentification absente ou invalide. {"errors":"Authentication Failed"}
403 object Route indisponible pour l'utilisateur authentifié. {"errors":"Service forbidden"}
{
  "entities": [],
  "priorities": [],
  "categories": [],
  "statuses": [
    {
      "id": "NEW",
      "label": "Nouveau courrier pour le service",
      "count": 2
    },
    {
      "id": "A_TRA",
      "label": "PJ à traiter",
      "count": 1
    }
  ],
  "entitiesChildren": [],
  "doctypes": [],
  "folders": []
}

Données

Valeur Type Description
entities array Entités traitantes disponibles. Chaque élément contient entityId, label et count.
priorities array Priorités disponibles. Chaque élément contient id, label et count.
categories array Catégories disponibles. Chaque élément contient id, label et count.
statuses array Statuts disponibles. Chaque élément contient id, label et count.
entitiesChildren array Entités avec un compteur incluant leurs sous-entités.
doctypes array Types de courrier disponibles. Chaque élément contient id, label et count.
folders array Dossiers visibles disponibles. Chaque élément contient id, label et count.