ProSonata API
Folgende HTTP-Methoden stehen für Projektzeiten zur Verfügung:
Zugriff für alle Benutzergruppen.
Benutzer bis Zeiterfasser 1 erhalten nur ihre eigenen Projektzeiten.
Nur Administratoren können Projektzeiten aller Benutzer erstellen/bearbeiten/löschen.
Alle Benutzer können ihre eigenen Projektzeiten erstellen/bearbeiten/löschen.
GET /api/v1/projecttimes
Antwort:
{
"meta": {
"status": 200,
"perPage": 100,
"page": 1,
"totalCount": 2432,
"requestUserID": 1,
"requestUsername": "Admin1",
"usergroupName": "Administrator",
"apiLimitRemaining": 476,
"apiLimitReset": 656
},
"data": [
{
"timeID": 1,
"category": 11,
"categoryName": "Konzeption",
"date": "2012-01-04",
"detail": "Besprechung Job",
"workingTime": 0.5,
"projectID": 45,
"projectNo": "12-11-001",
"projectName": "Frühstücks-Flyer",
"customerID": 11,
"customerName": "Bäckerei Back",
"userID": 1,
"username": "Admin1",
...
},
...
]
}
Über Parameter kann gefiltert werden:
GET /api/v1/projecttimes?projectID=45
| Parameter | Beschreibung |
|---|---|
| category | ID der Zeitkategorie |
| categoryName | Bezeichnung der Kategorie |
| date | Datum des Zeiteintrags durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen |
| date2 | zweite Datumsangabe, um die Suchanfrage weiter einzuschränken durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen |
| detail | Details/Beschreibung |
| projectID | ID eines Projekts |
| projectNo | Projektnummer |
| projectName | Bezeichnung eines Projekts |
| customerID | ID einer Firma/Gruppe |
| userID | ID eines Benutzers Sonderwert: String »myself« für Zeiten des anfragenden Benutzeraccounts |
| username | Benutzername |
| linkedTaskID | ID einer verlinkten Aufgabe |
| notInvoiceable | nicht berechenbar 0 = nein 1 = ja |
| isInvoiced | Zeiteintrag ist berechnet 0 = nein 1 = ja |
Nach folgenden Parametern kann sortiert werden (Sortierrichtung ggf. mit ASC bzw. DESC ergänzen):
timeID, category, date, projectID, customerID, userID, notInvoiceable, isInvoiced
GET /api/v1/projecttimes/{id}
Antwort:
{
"meta": {
"status": 200,
"requestUserID": 1,
"requestUsername": "Admin1",
"usergroupName": "Administrator",
"apiLimitRemaining": 456,
"apiLimitReset": 546
},
"data": {
"timeID": 449,
"category": 15,
"categoryName": "Workshop",
"date": "2019-03-02",
"detail": "Meeting beim Kunden",
"workingTime": 1.25,
"projectID": 189,
"projectNo": "19-14-001",
"projectName": "ZX Produktbroschüre",
"customerID": 14,
"customerName": "ZX Testfirma",
"userID": 3,
"username": "Admin2",
"linkedTaskID": null,
"notInvoiceable": 0,
"isInvoiced": 0,
"creationDate": "2019-03-02 10:40:12",
"workingTimeStart": null,
"workingTimeEnd": null,
"freeTimeInput": 0,
"timeViaApi": 0
}
}
POST /api/v1/projecttimes
Notwendige und mögliche Parameter im Body:
| Parameter | Beschreibung | Typ | Default-Wert | Pflichtfeld |
|---|---|---|---|---|
| category | ID der Zeitkategorie | Int | ja | |
| date | Datum des Zeiteintrags | Date | aktueller Tag | |
| detail | Details/Beschreibung (max. 200 Zeichen) |
String | ||
| workingTime | Projektzeit in Stunden | Dec | 0.00 | |
| projectID | ID des Projekts | Int | ja | |
| userID | ID des Benutzers (nur Administratoren können Zeiten für andere Benutzer erfassen!) |
ID des anfragenden Benutzers |
||
| linkedTaskID | ID einer verknüpften Aufgabe | Int | null | |
| notInvoiceable | Zeit ist nicht berechenbar 0 = nein 1 = ja |
Int | 0 | |
| isInvoiced | Zeit ist berechnet 0 = nein 1 = ja |
Int | 0 | |
| workingTimeStart | Startzeitpunkt der Bearbeitung | Time | null | |
| workingTimeEnd | Endzeitpunkt der Bearbeitung | Time | null |
Angabe von Dezimalwerten mit Punkt als Trennzeichen.
Beispiel:
{
"category": 15,
"date": "2019-03-02",
"detail": "Layout der Broschüre angefangen",
"workingTime": 1.25,
"projectID": 89,
"userID": 3
}