Entwickler, sei gegrüßt! Die mite.api freut sich auf deine Hacks. Welche Funktionen wie zur Verfügung stehen, erfährst du hier im Dokumentationsbereich.

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:

Status: 200 OK
{
  "tracker": {
    "tracking_time_entry": {
      "id": 36135321,
      "minutes": 247,
      "since": "2015-10-15T17:05:04+02:00"
    }
  }
}
Status: 200 OK
<?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.

Status: 200 OK
{
  "tracker": {}
}
Status: 200 OK
<?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

Status: 200 OK
{
  "tracker": {
    "tracking_time_entry": {
      "id": 36135322,
      "minutes": 0,
      "since": "2015-10-15T17:33:52+02:00"
    }
  }
}
Status: 200 OK
<?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:

Status: 200 OK
{
  "tracker": {
    "tracking_time_entry": {
      "id": 36135322,
      "minutes": 0,
      "since": "2015-10-15T17:33:52+02:00"
    },
   "stopped_time_entry": {
      "id": 36134329,
      "minutes": 46
    }
  }
}
Status: 200 OK
<?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

Status: 200 OK
{
  "tracker": {
   "stopped_time_entry": {
      "id": 36135322,
      "minutes": 4
    }
  }
}
Status: 200 OK
<?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.