Circuits de visa et d'avis¶
Ces routes manipulent les circuits de visa et d'avis d'un courrier. Elles nécessitent une authentification REST. Les contrôleurs vérifient l'existence du courrier et, selon l'action, son appartenance au périmètre de l'utilisateur.
Le choix du parapheur interne est décrit dans Parapheur interne. Seule la modification d'un circuit de type visaCircuit a un effet conditionnel confirmé.
Lister les modèles de circuit disponibles¶
| Paramètre | Emplacement | Type | Obligatoire | Description |
|---|---|---|---|---|
circuit |
query string | string non vide | oui | opinion sélectionne les modèles d'avis ; toute autre valeur sélectionne les modèles de visa. |
La réponse 200 OK contient la propriété circuits. Chaque élément expose les propriétés confirmées suivantes :
| Propriété | Type | Description |
|---|---|---|
id |
integer | Identifiant du modèle |
type |
string | Type de circuit |
entityId |
integer | Entité propriétaire |
title |
string | Libellé |
description |
string | Description |
private |
boolean | Indique si le modèle est privé |
Une query string absente ou invalide produit une réponse 400 Bad Request.
Consulter le circuit de visa d'un courrier¶
| Paramètre | Emplacement | Type | Description |
|---|---|---|---|
resId |
chemin | integer | Identifiant du courrier |
La réponse 200 OK contient circuit, la liste ordonnée des étapes, et hasHistory, qui indique l'existence d'un historique du circuit. Une étape contient notamment son identifiant, son ordre, son rôle, son état de visa et l'utilisateur ou l'entité désignée.
Consulter le circuit d'avis d'un courrier¶
Le paramètre resId est l'identifiant entier du courrier. La réponse 200 OK contient uniquement la propriété circuit. Contrairement à la route du circuit de visa, le contrôleur ne retourne pas hasHistory.
Remplacer un circuit¶
| Paramètre | Emplacement | Type | Description |
|---|---|---|---|
type |
chemin | string | visaCircuit ou opinionCircuit |
resId |
body | integer | Identifiant du courrier |
workflow |
body | array | Étapes du nouveau circuit |
Exemple minimal :
{
"resId": 42,
"workflow": [
{
"item_id": 17,
"item_type": "user_id",
"process_comment": "",
"signatory": true
}
]
}
L'objet exact d'une étape dépend du type de circuit et reprend les propriétés validées par le contrôleur de liste de diffusion. La réponse de succès est 204 No Content.
La mise à jour est transactionnelle : le circuit est remplacé dans une transaction de base de données. Pour un visaCircuit, lorsque config.newInternalParaph vaut true, le workflow est également synchronisé avec le parapheur électronique avant la validation de la transaction. Un problème retourné par cette synchronisation annule la transaction et est propagé au client. Aucun appel équivalent n'est effectué pour opinionCircuit.
config.newInternalParaph |
visaCircuit |
opinionCircuit |
|---|---|---|
false ou absent |
Mise à jour historique du circuit | Mise à jour historique du circuit |
true |
Mise à jour puis synchronisation avec le parapheur électronique | Mise à jour sans synchronisation démontrée |
Les contrôles invalides produisent une réponse 400 Bad Request; une absence de droit ou un courrier hors périmètre produit une réponse 403 Forbidden.
Supprimer un circuit¶
| Paramètre | Emplacement | Type | Description |
|---|---|---|---|
resId |
chemin | integer | Identifiant du courrier |
type |
chemin | string | Type de circuit à supprimer |
Le contrôleur vérifie le courrier et le périmètre de l'utilisateur, supprime les étapes du type demandé et trace l'opération dans l'historique. La réponse de succès est 204 No Content.