Workflow

Beaucoup de types de contenus ont un workflow associé dans GEVER (p.ex. position, dossier, tâches, ...).

Le Workflow-State courant d’un objet est, pour des raisons de simplicité review_state est contenu directment dans une représentation d’objet GET.

HTTP/1.1 200 OK
Content-Type: application/json

{
   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
   "@id": "https://example.org/dossier-15",
   "@type": "opengever.dossier.businesscasedossier",
   "...": "...",
   "review_state": "dossier-state-active"
}

L’Endpoint @workflow est utilisée pour les aspects de Workflows restants:

GET /(path)/@workflow

Retourne les informations de workflow pour l’objet adressé dans path.

Les informations de workflow contiennent la Workflow-History (qui inclut aussi le Workflow-State) ainsi que toutes les transitions workflow possibles.

Exemple de Request:

GET /dossier-15/@workflow HTTP/1.1
Accept: application/json

Exemple de Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "history": [
    {
      "action": null,
      "actor": "john.doe",
      "comments": "",
      "review_state": "dossier-state-active",
      "time": "2016-08-02T17:08:50+00:00"
    },
    {
      "action": "dossier-transition-resolve",
      "actor": "john.doe",
      "comments": "",
      "review_state": "dossier-state-resolved",
      "time": "2016-08-02T17:08:54+00:00"
    }
  ],
  "transitions": [
    {
      "@id": "http://example.org/dossier-15/@workflow/dossier-transition-reactivate",
      "title": "dossier-transition-reactivate"
    }
  ]
}

Ce dossier se trouve actuellement dans l’état clôturé. (dossier-state-resolved, dernière entrée dans la Workflow-History).

De par ce Workflow-State, la seule transition possible est la réouverture du dossier (dossier-transition-reactivate). Cette transition peut être déclenchée par une Request POST sur l’URL respective:

POST /(path)/@workflow/(transition)

Exécute la Workflow-Transition transition sur l’objet adressé dans path.

Exemple de Request:

POST /dossier-15/@workflow/dossier-transition-reactivate HTTP/1.1
Accept: application/json

Exemple de Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "action": "dossier-transition-reactivate",
  "actor": "john.doe",
  "comments": "",
  "review_state": "dossier-state-active",
  "time": "2016-08-02T15:20:21+00:00"
}