Bitte beachten: Die Stoppuhr lässt sich nur für den angemeldeten Benutzer anzeigen, starten und stoppen. Jedem Nutzer von mite ist genau eine Stoppuhr zugeordnet; es können daher niemals zwei Stoppuhren gleichzeitig für einen Nutzer laufen.
Stoppuhr anzeigen
Gibt die Stoppuhr des angemeldeten Benutzers zurück.
GET /tracker.xml
GET /tracker.json
Wenn die Stoppuhr auf einem Zeiteintrag läuft, erhältst du folgenden Eintrag:
{ "tracker": { "tracking_time_entry": { "id": 36135321, "minutes": 247, "since": "2015-10-15T17:05:04+02:00" } } }
<?xml version="1.0" encoding="UTF-8"?> <tracker> <tracking-time-entry> <id type="integer">247</id> <minutes type="integer">36135321</minutes> <since type="datetime">2015-10-15T17:05:04+02:00</since> </tracking-time-entry> </tracker>
Läuft keine Stoppuhr, erhältst du einen leeren Eintrag.
{
"tracker": {}
}
<?xml version="1.0" encoding="UTF-8"?> <tracker></tracker>
Stoppuhr starten
Startet die Stoppuhr auf dem Zeiteintrag mit der übergebenen id.
PATCH /tracker/:id.xml
PATCH /tracker/:id.json
Antwort
{ "tracker": { "tracking_time_entry": { "id": 36135322, "minutes": 0, "since": "2015-10-15T17:33:52+02:00" } } }
<?xml version="1.0" encoding="UTF-8"?> <tracker> <tracking-time-entry> <id type="integer">36135322</id> <minutes type="integer">0</minutes> <since type="datetime">2015-10-15T17:33:52+02:00</since> </tracking-time-entry> </tracker>
Das Attribut minutes enthält sowohl die Minuten, seit die Stoppuhr gestartet wurde, als auch die Minuten, die eventuell bereits vor dem Start der Stoppuhr auf dem Zeiteintrag vorhanden sind. Daher kann der Wert von minutes beim ersten Starten der Stoppuhr bereits größer als 0 sein.
Wenn die Stoppuhr auf dem gewünschten Zeiteintrag bereits läuft, wird diese nicht erneut gestartet; stattdessen werden einfach die aktuellen Daten ausgegeben.
Sollte die Stoppuhr bereits auf einem anderen Zeiteintrag laufen, wird sie dort gestoppt (in mite kann zu einem Zeitpunkt immer nur eine Stoppuhr pro Benutzer laufen). Du erhältst dann zusätzlich die Daten des gestoppten Zeiteintrages:
{ "tracker": { "tracking_time_entry": { "id": 36135322, "minutes": 0, "since": "2015-10-15T17:33:52+02:00" }, "stopped_time_entry": { "id": 36134329, "minutes": 46 } } }
<?xml version="1.0" encoding="UTF-8"?> <tracker> <tracking-time-entry> <id type="integer">36135322</id> <minutes type="integer">0</minutes> <since type="datetime">2015-10-15T17:33:52+02:00</since> </tracking-time-entry> <stopped-time-entry> <minutes type="integer">46</minutes> <id type="integer">36134329</id> </stopped-time-entry> </tracker>
Stoppuhr stoppen
Beendet die Stoppuhr auf dem Zeiteintrag mit der übergebenen id und gibt die Daten des gestoppten Zeiteintrages zurück.
DELETE /tracker/:id.xml
DELETE /tracker/:id.json
Antwort
{ "tracker": { "stopped_time_entry": { "id": 36135322, "minutes": 4 } } }
<?xml version="1.0" encoding="UTF-8"?> <tracker> <stopped-time-entry> <minutes type="integer">4</minutes> <id type="integer">36135322</id> </stopped-time-entry> </tracker>
Das Stoppen der Stoppuhr ist ebenfalls idempotent und kann daher auch zu spät, doppelt oder mit der id eines Zeiteintrages auf dem noch die eine Stoppuhr lief ausgeführt werden; es werden immer die gleichen Daten ausgegeben.