6.3 Consultation des messages d'historique

6.3.1 URL

GET /api/v1/documents/<documentId>/history/

Récupération de l'historique du document ayant l'identifiant <documentId>.

6.3.2 Content

Le contenu de la requête est vide.

6.3.3 Structure de retour

Le retour est une donnée JSON.

6.3.3.1 En cas de réussite :

La partie data contient les éléments suivants :

Clef Description Exemple
history Liste des caractéristiques des révisions [{documentId:13514, uri:api/v1/documents/7120/revisions/3, title:Document de test, fixed:false,…}]
requestParameters: Filtre utilisé {slice:-1, offset:0, revision:3}

Chaque élément de l'historique history contient la structure suivante :

  • Un champ properties qui contient :
Clef Description Exemple
id Identifiant numérique du document 13514
revision: Numéro de la révision 3
revisionDate: Date de la révision "2014-10-16 13:58:56"
state.reference : État de la révision "zoo_realised"
state.color: Couleur de l'état "#8870FF"
state.stateLabel: Libelle de l'état "Réalisé"
state.activity: Libelle de l'activité "Contrôle des vis-à-vis"
status: Indique si le status de la révision "fixed" , "alive", "deleted" "fixed"
title: Titre de la révision "Alberta"
uri: Uri d'accès à la révision "api/v1/documents/7120/revisions/3"
version: Version de la révision null
  • Un champ messages qui contient une liste de messages :

Chaque message contient la structure suivante :

Clef Description Exemple
code Code du message "MODIFY"
comment: Message textuel "modification Pays, Propriétaire actuel"
date: Date d'enregistrement du message "2014-10-16 13:58:56"
level: Niveau du message 4
uid: Identifiant de l'utilisateur ayant enregistré le message "2014-10-16 13:58:56"
uname: Nom de l'utilisateur ayant enregistré le message "Jean Martin"

Les niveaux (level) correspondent aux criticités suivantes :

Criticité Description
"notice" Message d'information mineur
"info" Message d'information (par défaut)
"message" Message important
"warning" Avertissement
"error" Erreur

Exemple :

GET api/v1/document/7120/history/
{
    "success": true,
    "messages": [],
    "data": {
        "uri": "http://www.example.net/api/v1/documents/7120/history/",
        "requestParameters": {
            "slice": -1,
            "offset": 0,
            "revision": -1
        },
        "history": [
            {
                "uri": "http://www.example.net/api/v1/documents/7120/revisions/2.json",
                "properties": {
                    "id": 7120,
                    "title": "Test d'un alligator",
                    "status": "alive",
                    "revision": 2,
                    "owner": {
                        "id": "1",
                        "title": "O'reilly Master"
                    },
                    "state": {
                        "reference": "zoo_transmited",
                        "stateLabel": "Transmis",
                        "activity": "Vérification d'aptitude",
                        "color": "#A8E5FF"
                    },
                    "version": "Deuxième",
                    "revisionDate": "2014-12-01 17:00:37"
                },
                "messages": [
                    {
                        "uid": 1,
                        "uname": "O'reilly Master",
                        "date": "2014-12-01 17:00:37",
                        "level": "info",
                        "code": null,
                        "comment": "no mail template"
                    }
                ]
            },
            {
                "uri": "http://www.example.net/api/v1/documents/7120/revisions/1.json",
                "properties": {
                    "id": 7120,
                    "title": "Test primaire",
                    "status": "fixed",
                    "revision": 1,
                    "owner": {
                        "id": "1",
                        "title": "O'reilly Master"
                    },
                    "state": {
                        "reference": "zoo_accepted",
                        "stateLabel": "Accepté",
                        "activity": "Préparation de l'accueil",
                        "color": "#66FF7A"
                    },
                    "version": null,
                    "revisionDate": "2014-10-16 13:57:16"
                },
                "messages": [
                    {
                        "uid": 1,
                        "uname": "O'reilly Master",
                        "date": "2014-10-16 13:57:16",
                        "level": "message",
                        "code": "REVISION",
                        "comment": "changement d'état de Transmis vers Accepté"
                    },
                    {
                        "uid": 1,
                        "uname": "O'reilly Master",
                        "date": "2014-10-16 13:57:04",
                        "level": "info",
                        "code": null,
                        "comment": "no mail template"
                    }
                ]
            },
            {
                "uri": "http://www.example.net/api/v1/documents/7120/revisions/0.json",
                "properties": {
                    "id": 7120,
                    "title": "Test primaire",
                    "status": "fixed",
                    "revision": 0,
                    "owner": {
                        "id": "1",
                        "title": "O'reilly Master"
                    },
                    "state": {
                        "reference": "zoo_transmited",
                        "stateLabel": "Transmis",
                        "activity": "Vérification de l'adoption",
                        "color": "#A8E5FF"
                    },
                    "version": null,
                    "revisionDate": "2014-10-16 13:57:04"
                },
                "messages": [
                    {
                        "uid": 1,
                        "uname": "O'reilly Master",
                        "date": "2014-10-16 13:57:04",
                        "level": "message",
                        "code": "REVISION",
                        "comment": "changement d'état de Initialisé vers Transmis"
                    },...
                ]
            }
        ]
    }
}

6.3.3.2 En cas d'échec

Les raisons d'échecs spécifiques à cette requête sont

Raison Status HTTP Error Code
Famille non trouvée 404 API0220
Document non trouvé 404 API0200

Exemple :

Cas d'erreur en cas de document non trouvé

{
    "success": false,
    "messages": [
        {
            "type": "error",
            "contentText": "Document \"3802\" not found",
            "contentHtml": "",
            "code": "API0200",
            "uri": "",
            "data": null
        },
        {
            "type": "message",
            "contentText": "You can consult http://dynacase.dev:8081/index.php?app=HTTPAPI_V1 to have info on the API",
            "contentHtml": "You can consult <a href=\"http://dynacase.dev:8081/index.php?app=HTTPAPI_V1\">the REST page</a> to have info on the API",
            "code": "",
            "uri": "",
            "data": null
        }
    ],
    "data": null,
    "exceptionMessage": "Document \"3802\" not found"
}

6.3.4 Filtres

6.3.4.1 Slice

Cette option indique le nombre de révision maximum à retourner.

Les révisions sont ordonnées par numéro décroissant, de la plus récente à la plus ancienne.

Exemple : les 10 dernières révisions

GET api/v1/document/1234/history/?slice=10

6.3.4.2 Offset

Index à partir duquel, les révisions sont retournées.

Exemple: Les révisions de 7 à 10.

GET api/v1/document/1234/history/?slice=2&offset=7

6.3.4.3 Révision

Cette option permet de ne retourner l'historique que d'une révision précise.

Exemple : Retourner la révision 3

GET api/v1/document/1234/history/?revision=3

La première révision porte le n°0.

6.3.5 Autres URL d'accès

Vous pouvez aussi accéder à cette ressources via :

GET /api/v1/families/<famName>/documents/<documentId>/history/

Récupération de l'historique de la dernière révision du document de la famille <famName> ayant l'identifiant <documentId>.

La différence entre les collection families et documents est que pour la collection /api/v1/families/<famName>/documents/<documentId>/history/ l'identifiant doit être dans la famille indiquée pour être retourné sinon une erreur 404 (ressource non trouvée) est retournée.

L'historique d'un document "supprimé" peut être récupéré via l'url

GET /api/v1/trash/<documentId>/history/
×