Aller au contenu

Bannettes

Ces routes administrent les bannettes. Elles exigent toutes une authentification REST, l'autorisation d'accès à la route et le privilège admin_baskets. Un privilège absent renvoie 403 avec {"errors":"Service forbidden"}.

Lister les bannettes

GET /rest/baskets
Code HTTP Type Description Exemple
200 object Liste dans baskets. {"baskets":[]}
403 object Privilège absent. {"errors":"Service forbidden"}

Les objets retournés proviennent de la table des bannettes et contiennent notamment basket_id, basket_name, basket_desc, basket_clause, is_visible, basket_order, flag_notif, basket_res_order et color.

Récupérer une bannette

GET /rest/baskets/{id}
Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.
Code HTTP Type Description Exemple
200 object Bannette dans basket. {"basket":{"basket_id":"AR_BASKET","basket_name":"Bannette d'AR"}}
400 object Bannette absente. {"errors":"Basket not found"}
403 object Privilège absent. {"errors":"Service forbidden"}

Créer une bannette

POST /rest/baskets
Valeur Type Obligatoire Valeur par défaut Description
id string Oui Identifiant de 32 caractères au plus, composé de lettres, chiffres, tirets ou _.
basket_name string Oui Nom.
basket_desc string Oui Description.
clause string Oui Clause SQL contrôlée par PreparedClauseController.
color string Non Couleur.
isSearchBasket boolean Non false Rend la bannette non visible lorsqu'il vaut true.
flagNotif boolean Non false Active les notifications lorsqu'il vaut true.
basket_res_order string Non res_id DESC Tri des courriers.
{
  "id": "AR_BASKET",
  "basket_name": "Bannette d'AR",
  "basket_desc": "Bannette servant aux AR",
  "clause": "status = 'ENV'",
  "color": "#36c3e6"
}
Code HTTP Type Description Exemple
200 object Bannette créée. {"basket":"AR_BASKET"}
400 object Body invalide. {"errors":"Bad Request"}
400 object Identifiant déjà utilisé. Message construit à partir des libellés traduits _ID et _ALREADY_EXISTS.
400 object Clause refusée. Message correspondant au libellé traduit _INVALID_CLAUSE.
403 object Privilège absent. {"errors":"Service forbidden"}

Modifier une bannette

PUT /rest/baskets/{id}

Le paramètre d'URL id est l'identifiant texte de la bannette. Le body reprend les champs de création sans id, basket_name, basket_desc et clause sont obligatoires.

{
  "basket_name": "Bannette d'AR",
  "basket_desc": "Bannette servant aux AR",
  "clause": "status = 'ENV'",
  "color": "#36c3e6"
}
Code HTTP Type Description Exemple
200 object Bannette modifiée. {"success":"success"}
400 object Bannette absente. {"errors":"Basket not found"}
400 object Body invalide. {"errors":"Bad Request"}
400 object Clause refusée. Message correspondant au libellé traduit _INVALID_CLAUSE.
403 object Privilège absent. {"errors":"Service forbidden"}

Supprimer une bannette

DELETE /rest/baskets/{id}
Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.
Code HTTP Type Description Exemple
200 object Bannette supprimée, retourne la nouvelle liste baskets. {"baskets":[]}
400 object Bannette absente. {"errors":"Basket does not exist"}
403 object Privilège absent. {"errors":"Service forbidden"}

Lister les groupes associés à une bannette

Cette route retourne les groupes associés à la bannette, leur configuration d’affichage et leurs actions. Elle fournit également la liste de tous les groupes disponibles.

GET /rest/baskets/{id}/groups

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.

Retour

Code HTTP Type Description Exemple
200 object Associations dans groups et groupes disponibles dans allGroups. {"groups":[],"allGroups":[]}
400 object Bannette absente. {"errors":"Basket not found"}
403 object Privilège absent. {"errors":"Service forbidden"}

Données d’un groupe associé

Valeur Type Description
id integer Identifiant interne de l’association.
basket_id string Identifiant de la bannette.
group_id string Identifiant du groupe.
group_desc string Libellé du groupe.
list_display object Configuration des colonnes affichées dans la liste des courriers.
list_event string Écran ouvert depuis la bannette : documentDetails, processDocument ou signatureBookAction.
list_event_data object ou null Options propres à l’écran indiqué par list_event.
groupActions array Toutes les actions disponibles, enrichies avec la configuration du groupe pour cette bannette.

allGroups contient les propriétés group_id et group_desc, triées par libellé.

Données d’une action de groupe

Valeur Type Description
id integer Identifiant de l’action.
checked boolean true lorsque l’action est associée au groupe dans cette bannette.
where_clause string Clause SQL complémentaire appliquée à l’action.
used_in_basketlist string Y si l’action apparaît directement dans la liste, sinon N.
used_in_action_page string Y si l’action apparaît dans la page d’action, sinon N.
default_action_list string Y si l’action est proposée par défaut dans la liste, sinon N.
redirects array Redirections configurées pour l’action.
redirects[].entity_id string Identifiant d’entité explicite, peut être vide lorsqu’un mot-clé est utilisé.
redirects[].keyword string Mot-clé de sélection des entités ou utilisateurs, peut être vide avec une entité explicite.
redirects[].redirect_mode string Mode de redirection, notamment ENTITY ou USERS.

Les autres propriétés métier de chaque action, comme son libellé et son type, sont également retournées.

Exemple
{
  "groups": [
    {
      "id": 42,
      "basket_id": "Basket_COU",
      "group_id": "AGENT",
      "group_desc": "Agents",
      "list_display": {
        "templateColumns": 1,
        "subInfos": [
          {
            "value": "getPriority",
            "cssClasses": ["align_leftData"]
          }
        ]
      },
      "list_event": "processDocument",
      "list_event_data": {
        "canUpdateData": true,
        "canUpdateModel": false,
        "canGoToNextRes": false,
        "defaultTab": "dashboard"
      },
      "groupActions": [
        {
          "id": 1,
          "checked": true,
          "where_clause": "",
          "used_in_basketlist": "Y",
          "used_in_action_page": "Y",
          "default_action_list": "N",
          "redirects": []
        }
      ]
    }
  ],
  "allGroups": [
    {
      "group_id": "AGENT",
      "group_desc": "Agents"
    }
  ]
}

Associer un groupe à une bannette

Cette route associe un groupe à une bannette et configure son affichage et ses actions.

POST /rest/baskets/{id}/groups

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.

Body

Valeur Type Obligatoire Valeur par défaut Description
group_id string Oui Identifiant d’un groupe existant.
list_display object Oui Configuration de l’affichage de la liste.
list_display.templateColumns integer Oui Nombre de colonnes principales.
list_display.subInfos array Oui Colonnes complémentaires, le tableau peut être vide.
list_display.subInfos[].value string Oui Identifiant de la donnée affichée.
list_display.subInfos[].cssClasses array Oui Classes CSS appliquées à la donnée.
groupActions array Oui Tableau non vide contenant les actions disponibles et leur état d’association.
list_event string Non documentDetails Écran ouvert : documentDetails, processDocument ou signatureBookAction.
list_event_data object Non Options de l’écran ouvert.

Lorsque list_event vaut processDocument, list_event_data accepte les booléens canUpdateData, canUpdateModel, canGoToNextRes et la chaîne defaultTab. Lorsque list_event vaut signatureBookAction, la création accepte le booléen canUpdateDocuments et le tableau actions.

Structure de groupActions

Valeur Type Obligatoire Valeur par défaut Description
checked boolean Oui Indique si l’action doit être associée.
id integer Oui si checked=true Identifiant d’une action existante.
where_clause string Non Chaîne vide Clause SQL complémentaire contrôlée par PreparedClauseController.
used_in_basketlist boolean Non false Affiche l’action dans la liste de la bannette.
used_in_action_page boolean Non false Affiche l’action dans la page d’action.
default_action_list boolean Non false Définit l’action proposée par défaut dans la liste.
redirects array Non [] Redirections associées à l’action.
redirects[].entity_id string Oui pour une redirection Identifiant d’entité, éventuellement vide si keyword est renseigné.
redirects[].keyword string Oui pour une redirection Mot-clé, éventuellement vide si entity_id est renseigné.
redirects[].redirect_mode string Oui pour une redirection Mode de redirection non vide.

Une action cochée doit être présente dans la liste ou dans la page d’action. Au moins l’un des champs used_in_basketlist et used_in_action_page doit donc valoir true.

Exemple
{
  "group_id": "AGENT",
  "list_display": {
    "templateColumns": 1,
    "subInfos": [
      {
        "value": "getPriority",
        "cssClasses": ["align_leftData"]
      }
    ]
  },
  "list_event": "processDocument",
  "list_event_data": {
    "canUpdateData": true,
    "canUpdateModel": false,
    "canGoToNextRes": false,
    "defaultTab": "dashboard"
  },
  "groupActions": [
    {
      "id": 1,
      "checked": true,
      "where_clause": "",
      "used_in_basketlist": true,
      "used_in_action_page": true,
      "default_action_list": false,
      "redirects": []
    }
  ]
}

Retour

Code HTTP Type Description Exemple
204 aucun Groupe associé, la réponse ne contient pas de body.
400 object Bannette ou groupe absent. {"errors":"Basket not found"}
400 object Le groupe est déjà associé à la bannette. {"errors":"Group already exist for this basket"}
400 object Body, affichage, événement, action, redirection ou clause invalide. {"errors":"Data groupActions is empty or not an array"}
403 object Privilège absent. {"errors":"Service forbidden"}

L’association crée une préférence d’affichage active pour chaque utilisateur appartenant au groupe.

Modifier l’affichage d’un groupe associé

Cette route remplace la configuration d’affichage et l’écran ouvert pour un groupe déjà associé à la bannette. Elle ne modifie pas ses actions.

PUT /rest/baskets/{id}/groups/{groupId}

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.
groupId string Oui Identifiant du groupe associé.

Body

Le body reprend list_display, list_event et list_event_data décrits pour la création. list_display est obligatoire. Pour signatureBookAction, la modification accepte également les booléens canAddAttachments et goToNextDocument.

Exemple
{
  "list_display": {
    "templateColumns": 2,
    "subInfos": [
      {
        "value": "getPriority",
        "cssClasses": ["align_leftData"]
      },
      {
        "value": "getCategory",
        "cssClasses": ["align_leftData"]
      }
    ]
  },
  "list_event": "documentDetails"
}

Retour

Code HTTP Type Description Exemple
200 object Configuration remplacée. {"success":"success"}
400 object Bannette absente. {"errors":"Basket not found"}
400 object Groupe non associé à la bannette. {"errors":"Group does not exist for this basket"}
400 object Body, affichage ou événement invalide. {"errors":"Data list_event is invalid"}
403 object Privilège absent. {"errors":"Service forbidden"}

Modifier les actions d’un groupe associé

Cette route remplace toutes les actions et redirections configurées pour le groupe dans la bannette. L’association du groupe et les préférences d’affichage des utilisateurs sont conservées.

PUT /rest/baskets/{id}/groups/{groupId}/actions

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.
groupId string Oui Identifiant du groupe associé.

Body

Valeur Type Obligatoire Description
groupActions array Oui Tableau non vide suivant la structure décrite plus haut.
Exemple
{
  "groupActions": [
    {
      "id": 1,
      "checked": true,
      "where_clause": "status = 'NEW'",
      "used_in_basketlist": true,
      "used_in_action_page": true,
      "default_action_list": false,
      "redirects": [
        {
          "entity_id": "",
          "keyword": "MY_ENTITIES",
          "redirect_mode": "ENTITY"
        }
      ]
    }
  ]
}

Retour

Code HTTP Type Description Exemple
200 object Actions remplacées. {"success":"success"}
400 object Bannette absente. {"errors":"Basket not found"}
400 object Groupe non associé à la bannette. {"errors":"Group does not exist for this basket"}
400 object Tableau vide, action, redirection ou clause invalide. {"errors":"Data groupActions is empty or not an array"}
403 object Privilège absent. {"errors":"Service forbidden"}

Dissocier un groupe d’une bannette

Cette route supprime l’association, ses actions, ses redirections et les préférences d’affichage correspondantes.

DELETE /rest/baskets/{id}/groups/{groupId}

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant basket_id de la bannette.
groupId string Oui Identifiant du groupe à dissocier.

Retour

Code HTTP Type Description Exemple
200 object Groupe dissocié. {"success":"success"}
400 object Bannette absente. {"errors":"Basket not found"}
403 object Privilège absent. {"errors":"Service forbidden"}

Lister les bannettes triées

Cette route retourne les bannettes visibles dans leur ordre d’administration.

GET /rest/sortedBaskets

Retour

Code HTTP Type Description Exemple
200 object Bannettes visibles, triées par basket_order, dans baskets. {"baskets":[{"basket_id":"Basket_COU","basket_name":"Courriers à traiter","basket_desc":"Courriers à traiter","basket_order":1}]}
403 object Privilège absent. {"errors":"Service forbidden"}

Chaque élément contient basket_id, basket_name, basket_desc et basket_order. Les bannettes dont is_visible vaut N ne sont pas retournées.

Modifier l’ordre des bannettes

Cette route remplace l’ordre des bannettes à partir de la position de chaque élément dans le tableau transmis.

PUT /rest/sortedBaskets/{id}

Paramètres

URL

Valeur Type Obligatoire Description
id string Oui Identifiant de la bannette déplacée, utilisé comme identifiant de l’événement d’historique.

Body

Le body est un tableau JSON non vide. Chaque élément doit être un objet contenant un basket_id non vide. L’ordre des éléments, à partir de l’index 0, devient la valeur basket_order.

Exemple
[
  {
    "basket_id": "Basket_COU"
  },
  {
    "basket_id": "Basket_Env"
  }
]

Retour

Code HTTP Type Description Exemple
200 object Nouvel ordre des bannettes visibles dans baskets. {"baskets":[{"basket_id":"Basket_COU","basket_name":"Courriers à traiter","basket_desc":"","basket_order":0}]}
400 object Body vide ou d’un autre type. {"errors":"Data is empty or not an array"}
400 object Un élément n’est pas un objet JSON. {"errors":"Basket to update is not an array"}
400 object Un élément ne contient pas de basket_id texte non vide. {"errors":"Data basket_id is empty or not a string"}
403 object Privilège absent. {"errors":"Service forbidden"}