Tâches¶
Les tâches peuvent également être contrôlées via REST API. La création d’une tâche se faite comme pour les autres contenus via une Request POST (Voir chapitre Opérations):
Exemple de Request:
POST /(container) HTTP/1.1 Accept: application/json Content-Type: application/json { "@type": "opengever.task.task", "title": "Prière de contrôler le document", "responsible": "john.doe", "issuer": "john.doe", "responsible_client": "afi", "task_type": "direct-execution" }
Exemple de Response:
HTTP/1.1 201 Created Accept: application/json { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5", "@type": "opengever.task.task", "...": "..." }
Modifications/Changements d’état¶
La modification d’une tâche via Patch Request n’est possible que de manière limitée, c’est-à-dire lorsque la tâche est dans un état ouvert. Dans le déroulement subséquent de la tâche, les changements sont uniquement traités via des changements d’état. Ceci se fait par l’Endpoint @workflow
avec la Transition ID comme paramètre additionnel.
Une requête GET sur l’endpoint @workflow endpoint Liste les transitions possibles:
Exemple de Request:
GET /(path)/@workflow HTTP/1.1 Accept: application/json
Exemple de Response:
HTTP/1.1 200 OK Accept: application/json { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5/@workflow", "history": [], "transitions": [ { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5/@workflow/task-transition-modify-deadline", "title": "Modifier délai" }, { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5/@workflow/task-transition-open-in-progress", "title": "Accepter" }, { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5/@workflow/task-transition-reassign", "title": "Réassigner" } ] }
Une transition est exécutée de la manière suivante:
Exemple de Request:
POST /(path)/@workflow/task-transition-open-in-progress HTTP/1.1 Accept: application/json { "text": "Ok, je m'en occupe!" }
Exemple de Response:
HTTP/1.1 200 OK Accept: application/json { "action": "task-transition-open-in-progress", "actor": "philippe.gross", "comments": "", "review_state": "task-state-in-progress", "time": "2019-01-24T16:12:12+00:00", "title": "En traitement" }
Les changements d’état sont documentés comme suit:
Accepter¶
- Transition IDs:
task-transition-open-in-progress
Métadonnées additionnelles:
text
¶
Type: Text
Modifier délai¶
- Transition IDs:
task-transition-modify-deadline
Métadonnées additionnelles:
new_deadline
¶
Type: Date
Obligatoire: Oui (*)
text
Type: Text
Compléter¶
- Transition IDs:
task-transition-in-progress-resolved
task-transition-open-resolved
Métadonnées additionnelles:
text
Type: Text
Réviser¶
- Transition IDs:
- task-transition-resolved-in-progress
Métadonnées additionnelles:
text
Type: Text
Fermer¶
- Transition IDs:
task-transition-resolved-tested-and-closed
task-transition-in-progress-tested-and-closed
task-transition-open-tested-and-closed
Métadonnées additionnelles:
text
Type: Text
Annuler¶
- Transition IDs:
task-transition-open-cancelled
task-transition-in-progress-cancelled
Métadonnées additionnelles:
text
Type: Text
Refuser¶
- Transition IDs:
task-transition-open-rejected
task-transition-in-progress-cancelled
Métadonnées additionnelles:
text
Type: Text
Rouvrir¶
- Transition IDs:
task-transition-cancelled-open
task-transition-rejected-open
Métadonnées additionnelles:
text
Type: Text
Déléguer¶
- Transition IDs:
task-transition-delegate
Métadonnées additionnelles:
text
Type: Text
Additionnellément, les changements d’état suivants sont disponibles pour les tâches séquentielles:
Sauter¶
- Transition IDs:
task-transition-planned-skipped
task-transition-rejected-skipped
Métadonnées additionnelles:
text
Type: Text
Commenter une tâche¶
Il est possible de commenter une tâche via l’Endpoint @responses:
Ajouter un commentaire¶
Une requête POST sur l’Endpoint @responses créé un commentaire avec l’utilisateur courant
Exemple de Request:
POST http://example.org/ordnungssystem/direction/dossier-1/task-5/@responses HTTP/1.1 Accept: application/json Content-Type: application/json { "text": "Prière de vérifier rapidement! Merci.", }
Exemple de Response:
HTTP/1.1 201 Created Content-Type: application/json { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5/@responses/1569875801956269", "added_objects": [], "changes": [], "created": "2019-05-21T13:57:42+00:00", "creator": { "title": "Meier Peter", "token": "peter.meier" }, "mimetype": "", "related_items": [], "rendered_text": "", "response_id": 1569875801956269, "response_type": "comment", "successor_oguid": "", "text": "Prière de vérifier rpaidement! Merci.", "transition": "task-commented" }
Modifier un commentaire¶
Une Request PATCH sur une ressource de type commentaire modifie le commentaire.
Exemple de Request:
PATCH http://example.org/ordnungssystem/direction/dossier-1/task-5/@responses/1569875801956269 HTTP/1.1 Accept: application/json Content-Type: application/json { "text": "Ca s'est réglé tout seul.", }
Exemple de Response:
HTTP/1.1 204 Created Content-Type: application/json
Déroulement d’une tâche¶
Le déroulement d’une tâche est contenu dans une représentation GET de celle-ci, sous l’attribut responses
.
Exemple de Response sur une request GET:
HTTP/1.1 200 OK Accept: application/json { "@id": "http://example.org/ordnungssystem/direction/dossier-1/task-5", "@type": "opengever.task.task", "UID": "3a551f6e3b62421da029dfceb71656e6", "items": [], "responses": [ { "response_id": 1 "response_type": "default" "added_objects": [], "changes": [], "creator": "zopemaster", "created": "2019-05-21T13:57:42+00:00", "date_of_completion": null, "related_items": [], "reminder_option": null, "text": "Lorem ipsum.", "transition": "task-commented" }, { "response_id": 2 "response_type": "default" "added_objects": [], "changes": [], "creator": "zopemaster", "created": "2019-05-21T14:02:01+00:00", "date_of_completion": null, "related_items": [], "text": "Suspendisse faucibus, nunc et pellentesque egestas.", "transition": "task-transition-open-in-progress" }, ] "responsible": "david.erni", "...": "...", }