ProSonata API

Projektaufgaben

Folgende HTTP-Methoden stehen für Projektaufgaben zur Verfügung:

Zugriff für alle Benutzergruppen.
Alle Benutzer können Projektaufgaben erstellen/bearbeiten.
Nur Benutzer ab der Gruppe Teamleiter können Projektaufgaben aller Benutzer löschen.
Alle Benutzer können ihre eigenen Projektaufgaben löschen.

alle Projektaufgaben auflisten

GET /api/v1/projecttasks

Antwort:

{
  "meta": {
    "status": 200,
    "perPage": 100,
    "page": 1,
    "totalCount": 564,
    "requestUserID": 1,
    "requestUsername": "Admin1",
    "usergroupName": "Administrator",
    "apiLimitRemaining": 436,
    "apiLimitReset": 513
  },
  "data": [
    {
      "taskID": 13,
      "taskName": "Layout erstellen",
      "taskInfo": "<p>weitere Infos zur Aufgabe</p>",
      "projectID": 48,
      "projectNo": "19-12-001",
      "projectName": "Kundenmailing",
      "customerID": 12,
      "customerName": "Versandmode Becker",
      "userID": 7,
      "username": "Designer1",
      ...
    },
    ...
  ]
}

Filterung/Suche

Über Parameter kann gefiltert werden:

GET /api/v1/projecttasks?projectID=45&userID=3&done=0
Parameter Beschreibung
projectID ID eines Projekts
projectNo Projektnummer
projectName Bezeichnung eines Projekts
customerID ID einer Firma/Gruppe
customerName Bezeichnung einer Firma/Gruppe
userID ID eines Benutzers
Sonderwert: String »myself« für Zeiten des anfragenden Benutzeraccounts

durch Ergänzung des Parameters »additionalUser=true« werden auch Aufgaben berücksichtigt, bei denen der Benutzer Zuarbeiter ist
username Benutzername
taskName Aufgabe
taskDateStart Startdatum der Aufgabe
durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen
taskDateEnd Enddatum der Aufgabe
durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen
recurringTask wiederkehrende Aufgabe
0 = keine Wiederholung
1 = wöchentlich
2 = 2-wöchentlich
3 = monatlich
4 = 2-monatlich
5 = quartalsweise
6 = halbjährlich
taskTimeCategory ID der Zeitkategorie
taskPrio Priorität der Aufgabe
0 = ohne
1 = niedrig
5 = mittel
9 = hoch
type Typ des Eintrags
0 = Aufgabe
1 = Meilenstein
read Aufgabe ist gelesen
0 = nein
1 = ja
done Aufgabe ist erledigt
0 = nein
1 = ja

 

Sortierung

Nach folgenden Parametern kann sortiert werden (Sortierrichtung ggf. mit ASC bzw. DESC ergänzen):

taskID, projectID, customerID, userID, taskDateStart, taskDateEnd, taskOrder, taskPrio, type, read, done

eine Projektaufgabe aufrufen

GET /api/v1/projecttasks/{id}

Antwort:

{
  "meta": {
    "status": 200,
    "requestUserID": 1,
    "requestUsername": "Admin1",
    "usergroupName": "Administrator",
    "apiLimitRemaining": 186,
    "apiLimitReset": 403
  },
  "data": {
    "taskID": 304,
    "taskName": "erstes Layout vorbereiten",
    "taskInfo": "",
    "projectID": 122,
    "projectNo": "19-16-004",
    "projectName": "Gestaltung der Webseite",
    "customerID": 16,
    "customerName": "Maler Maier",
    "userID": 1,
    "username": "Admin1",
    "taskDateStart": null,
    "taskTimeStart": null,
    "taskDateEnd": null,
    "taskTimeEnd": null,
    "timePlanned": 3,
    "recurringTask": 0,
    "recurringTaskDateEnd": null,
    "taskOrder": 7,
    "taskTimeCategory": null,
    "categoryName": null,
    "taskPrio": 9,
    "type": 0,
    "read": 1,
    "donePercentage": 0,
    "done": 0,
    "doneMailToUserID": null,
    "changedInfoToUser": 0,
    "changedInfoToCreator": 0,
    "createdByUserID": 1,
    "taskCreationDate": "2019-03-11 17:19:03",
    "editedByUserID": 1,
    "taskEditDate": "2019-03-11 17:19:14",
    "linkedExtCostID": null,
    "taskViaApi": 0
  }
}

eine Projektaufgabe erstellen

POST /api/v1/projecttasks

Notwendige und mögliche Parameter im Body:

Parameter Beschreibung Typ Default-Wert Pflichtfeld
taskName Bezeichnung der Aufgabe String   ja
taskInfo erweiterte Infos zur Aufgabe
Eingabe mit html Tags
(max. 5.000 Zeichen)
String    
projectID ID des Projekts Int   ja
userID ID des Benutzers Int ID des anfragenden
Benutzers
 
taskDateStart Datum Beginn der Aufgabe Date null  
taskTimeStart Uhrzeit des Startdatums Time null  
taskDateEnd Datum Ende der Aufgabe Date null  
taskTimeEnd Uhrzeit des Enddatums Time null  
timePlanned geplante Zeit der Aufgabe Dec 0.00  
recurringTask wiederkehrende Aufgabe
0 = keine Wiederholung
1 = wöchentlich
2 = 2-wöchentlich
3 = monatlich
4 = 2-monatlich
5 = quartalsweise
6 = halbjährlich
Int 0  
recurringTaskDateEnd Datum Ende der Wiederholungen Date null  
taskTimeCategory Zeitkategorie der Aufgabe Int null  
taskPrio Priorität der Aufgabe
0 = keine Prio
1 = niedrige Prio
5 = mittlere Prio
9 = hohe Prio
Int 0  
type Typ der Aufgabe
0 = Aufgabe
1 = Meilenstein
Int 0  
doneMailToUserID erledigt E-Mail an Benutzer mit der ID Int null  
changedInfoToUser Änderungen E-Mail an Mitarbeiter
0 = nein
1 = ja
Int 0  
changedInfoToCreator Änderungen E-Mail an Aufgabenersteller
0 = nein
1 = ja
Int 0  
additionalUsers Zuarbeiter (Benutzer) speichern
(ein Array der userID(s) kann übergeben werden)
Array []
leeres Array
 

Angabe von Dezimalwerten mit Punkt als Trennzeichen.

Beispiel:

{
    "taskName": "eine Aufgabe zum Projekt",
    "taskInfo": "<p>hier steht eine erweiterte Beschreibung</p>",
    "projectID": 122,
    "userID": 3,
    "taskDateStart": "16.04.2019",
    "taskDateEnd": "20.04.2019",
    "timePlanned": 3.75,
    "taskPrio": 9,
    "additionalUsers": [
      {
        "userID": 2
      },
      {
        "userID": 6
      }
    ]
}

eine Projektaufgabe bearbeiten

PUT /api/v1/projecttasks/{id}

Es müssen nicht alle Parameter für eine Bearbeitung übergeben werden.

Es stehen die Parameter zum Erstellen der Ressource zur Verfügung (s.o.).

Ergänzend stehen weitere Parameter zur Verfügung:

Parameter Beschreibung Typ
read gelesen
0 = nein
1 = ja
Int
donePercentage erledigt (Prozent)
Werte: 0, 25, 50, 75, 100
Int
done erledigt
0 = nein
1 = ja
Int

 

eine Projektaufgabe löschen

DELETE /api/v1/projecttasks/{id}

Es müssen keine weiteren Parameter übergeben werden.