Login English

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.

Zeiteinträge auflisten

GET /time_entries.xml

Listet alle Zeiteinträge aller Benutzer absteigend sortiert nach Datum (date_at) auf. Ein Benutzer mit der Rolle Zeiterfasser hat nur Zugriff auf seine eigenen Zeiteinträge.

Response : 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<time-entries type="array">
   <time-entry>
      ...
   </time-entry>
   <time-entry>
      ...
   </time-entry>
</time_entries>

Die ausgegebene Liste kann nach folgenden Parametern gefiltert werden:

customer_id
ID des Kunden
project_id
ID des Projekts
service_id
ID der Leistung
user_id
ID des Benutzers
billable
true oder false
note
Freitextsuche im Bemerkungsfeld
at
today, yesterday, this_week, last_week, this_month, last_month oder Datum im Format YYYY-MM-DD
from, to
beide im Format YYYY-MM-DD
locked
true oder false

Beispielsweise würde

GET /time_entries.xml?service_id=3

alle Zeiteinträge ausgeben, die der Leistung mit der ID 3 zugeordnet wurden.

Es kann auch nach allen Zeiteinträgen gesucht werden, die einer von mehreren Leistungen zugeordnet wurden:

GET /time_entries.xml?service_id=3,4

Dies gibt alle Zeiteinträge aus, die entweder der Leistung mit der ID 3 oder mit der ID 4 zugeordnet wurden. Gleiches ist auch bei customer_id, project_id und user_id möglich.

Per Default werden alle Zeiteinträge ausgegeben, die den übergebenen Kriterien entsprechen. In manchen Fällen können dies mehrere Tausend Stück sein. Daher ist es möglich die Anzahl mit limit zu begrenzen:

GET /time_entries.xml?limit=100

Dies gibt die ersten 100 Zeiteinträge zurück. Um eine große Anzahl von Einträgen sequentiell zu empfangen ist es möglich mit page die darauf folgenden Einträge auszugeben:

GET /time_entries.xml?limit=100&page=2

gibt die Einträge 101 bis 200 zurück.

Darüberhinaus ist es möglich, Zeiteinträge gruppiert auszugeben und auf die über die Weboberfläche angelegten Lesezeichen zuzugreifen.

Alle Einträge eines bestimmten Tages auflisten

GET /daily.xml

Listet alle Zeiteinträge des aktuellen Benutzers am heutigen Tag auf.

GET /daily/2009/2/7.xml

Listet alle Zeiteinträge des aktuellen Benutzers am 7. Februar 2009 auf.

Einzelnen Eintrag anzeigen

GET /time_entries/{id}.xml

Gibt einen einzelnen Zeiteintrag zurück. Dieser kann einem beliebigen Benutzer des Accounts gehören, solange der aktuelle Benutzer kein Zeiterfasser ist.

Response : 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<time-entry>
   <id type="integer">71</id>
   <date-at type="date">2008-04-16</date-at>
   <minutes type="integer">0</minutes>
   <revenue type="float" nil="true"></revenue>
   <billable type="boolean">true</billable>
   <note></note>
   <user-id type="integer">2</user-id>
   <user-name>Fridolin Fremd</user-name>
   <project-id type="integer">3</project-id>
   <project-name>API 2.0</project-name>
   <service-id type="integer">12</service-id>
   <service-name>Entwurf</service-name>
   <customer-id type="integer">13</customer-id>
   <customer-name>König</customer-name>
   <locked type="boolean">false</locked>
   <created-at type="datetime">2008-09-18T01:26:18+02:00</created-at>
   <updated-at type="datetime">2008-09-18T01:26:18+02:00</updated-at>
</time-entry>

Läuft auf dem angeforderten Zeiteintrag die Stoppuhr, wird zusätzlich ausgegeben, seit wann die Stoppuhr läuft und wie viele Minuten akkumuliert auf dem Zeiteintrag gestoppt wurden (gemessene + bereits vorhandene Minuten).

Response : 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<time-entry>
   ...
   <tracking>
      <since type="datetime">2008-01-22T22:58:13+01:00</since>
      <minutes type="integer">12</minutes>
   </tracking>
</time-entry>

Neuen Eintrag erstellen

POST /time_entries.xml

Erstellt einen neuen Zeiteintrag. Alle Parameter sind optional. Folgende Parameter können angegeben werden:

date_at
Datum des Zeiteintrages im Format YYYY-MM-DD. Default: Heute
minutes
Default: 0
note
Default: '' (leerer String)
user_id
Kann nur von Admistratoren oder dem Besitzer des Accounts gesetzt werden. Default: ID des aktuellen Benutzers
project_id
Default: nil
service_id
Default: nil
locked
Kann nur von Admistratoren oder dem Besitzer des Accounts gesetzt werden. Default: false
WICHTIG: Ist ein Zeit-Eintrag als abgeschlossen markiert worden, kann er nicht mehr bearbeitet und nicht mehr gelöscht werden. Admistratoren oder dem Besitzer des Accounts ist es jedoch möglich mit dem Parameter force abgeschlossene Einträge zu bearbeiten und löschen – beispielsweise um einen Eintrag wieder »aufzuschliessen«.
Request Body
<time-entry>
   <date-at>2009-2-12</date-at>
   <minutes>185</minutes>
   <note></note>
   <service-id>2</service-id>
   <project-id>3</project-id>
</time-entry>
Response : 201 Created
<?xml version="1.0" encoding="UTF-8"?>
<time-entry>
   <id type="integer">5</id>
   <date-at type="date">2009-2-12</date-at>
   <minutes type="integer">185</minutes>
   <revenue type="float" nil="true"></revenue>
   <billable type="boolean">true</billable>
   <note></note>
   <user-id type="integer">2</user-id>
   <user-name>Fridolin Fremd</user-name>
   <project-id type="integer">3</project-id>
   <project-name>API 2.0</project-name>
   <service-id type="integer">2</service-id>
   <service-name>Dokumentation</service-name>
   <customer-id type="integer">13</customer-id>
   <customer-name>König</customer-name>
   <locked type="boolean">false</locked>
   <created-at type="datetime">2009-02-11T18:54:45+01:00</created-at>
   <updated-at type="datetime">2009-02-11T18:54:45+01:00</updated-at>
</time-entry>

Bearbeiten

PUT /time_entries/{id}.xml

Aktualisiert einen Zeiteintrag mit den übergebenen Parametern. Dieser kann einem beliebigen Benutzer des Accounts gehören, solange der aktuelle Benutzer ein Admistrator oder der Besitzer des Accounts ist. Es können dieselben Parameter wie zum Erstellen eines Eintrags verwendet werden.

Request Body
<time-entry>
   <minutes>120</minutes>
   <service_id>3</service-id>
</time-entry>
Response : 200 OK

Löschen

DELETE /time_entries/{id}.xml

Löscht einen Zeiteintrag.

Response : 200 OK