ToDos¶
ToDos (Teamraum Aufgaben) werden wie folgt über die REST-API bedient:
Ein ToDo erstellen¶
Beispiel-Request:
POST workspaces/workspace-1 HTTP/1.1 Accept: application/json Content-Type: application/json { "@type": "opengever.workspace.todo", "title": "Bitte Dokument reviewen", "text": "Das wichtige Dokument muss angeschaut werden.", "deadline": "2018-10-16", "responsible": "john.doe", "external_reference": "www.example.com" }
Beispiel-Response:
HTTP/1.1 201 Created Accept: application/json { "@id": "http://example.org/workspaces/workspace-1/todo-1", "@type": "opengever.workspace.todo", "UID": "dc295c19ee404aafa7b9331b3eb353f2", "...": "..." }
Ein ToDo als erledigt markieren¶
Beispiel-Request:
POST workspaces/workspace-1/todo-1/@workflow/opengever_workspace_todo--TRANSITION--complete--active_completed HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "action": "opengever_workspace_todo--TRANSITION--complete--active_completed", "title": "Completed", "...": "..." }
Ein erledigtes ToDo wieder öffnen¶
Beispiel-Request:
POST workspaces/workspace-1/todo-1/@workflow/opengever_workspace_todo--TRANSITION--open--completed_active HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "action": "opengever_workspace_todo--TRANSITION--open--completed_active", "title": "Active", "...": "..." }
Ein ToDo-Status togglen (öffnen/abschliessen)¶
Der Status eines Todos kann mit dem @toggle
-Endpoint umgedreht werden.
Beispiel-Request:
POST workspaces/workspace-1/todo-1/@toggle HTTP/1.1 Accept: application/json Prefer: return=representation
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "workspaces/workspace-1/todo-1/@toggle", "review_state": "opengever_workspace_todo--TRANSITION--open--completed_active", "is_completed": true, "...": "..." }
Ein ToDo neu zuweisen¶
Beispiel-Request:
PATCH workspaces/workspace-1/todo-1 HTTP/1.1 Accept: application/json Content-Type: application/json { "responsible": "jack.johnson", }
Beispiel-Response:
HTTP/1.1 204 No Content
Ein ToDo löschen¶
Beispiel-Request:
DELETE workspaces/workspace-1/todo-1 HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 204 No Content
Antworten¶
ToDo Antworten sind ebenfalls via API ersichtlich bzw. können über diese erstellt, bearbeitet und gelöscht werden.
Die API Repräsentation eines ToDos, listet unter dem Attribut responses
alle Antworten auf. Eine GET Request auf eine einzelnes ToDo ist ebenfalls möglich und antwortet mit der gleichen Repräsentation.
Beispiel-Request:
GET workspaces/workspace-1/todo-1 HTTP/1.1 Accept: application/json
Beispiel-Response:
HTTP/1.1 200 OK Content-Type: application/json { "@id": "http://example.org/workspaces/workspace-1/todo-1", "@type": "opengever.workspace.todo", "responses": [ { "@id": "http://example.org/workspaces/workspace-1/todo-1/@responses/1566374379118225", "created": "2019-08-21T09:59:39", "creator": { "title": "Meier Peter", "token": "peter.meier" }, "text": "Ich werde die Anfrage prüfen." }, { "@id": "http://example.org/workspaces/workspace-1/todo-1/@responses/1566374384493182", "created": "2019-08-21T09:59:44", "creator": { "title": "Meier Urs", "token": "urs.meier" }, "text": "Ist aus meiner Sicht erledigt." }, ] "...": "..." }
Erstellung, Bearbeitung und Löschen¶
Antworten können mit einem POST Request auf den @responses
Endpoint hinzugefügt werden.
Beispiel-Request:
POST workspaces/workspace-1/todo-1/@responses HTTP/1.1 Accept: application/json Content-Type: application/json { "text": "Bitte rasch anschauen. Danke.", }
Beispiel-Response:
HTTP/1.1 201 Created Content-Type: application/json { "@id": "http://example.org/workspaces/workspace-1/todo-1/@responses/1566382366854841", "created": "2019-08-21T12:12:46", "creator": { "title": "Meier Peter", "token": "peter.meier" }, "text": "Bitte rasch anschauen. Danke." }
Die Bearbeitung einer Antwort geschieht mittels PATCH Request. Nur Antworten vom Typ “Kommentar” können bearbeitet werden.
Beispiel-Request:
PATCH workspaces/workspace-1/todo-1/@responses/1566382366854841 HTTP/1.1 Accept: application/json Content-Type: application/json { "text": "Bitte rasch anschauen. Danke.", }
Beispiel-Response:
HTTP/1.1 204 Created Content-Type: application/json
Ein DELETE Request auf eine Antwort vom Typ Kommentar löscht den Kommentar.
Beispiel-Request:
DELETE workspaces/workspace-1/todo-1/@responses/1569875801956269 HTTP/1.1 Accept: application/json Content-Type: application/json
Beispiel-Response:
HTTP/1.1 204 No Content