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: Leistungen können von Zeiterfassern nur gelesen, nicht jedoch bearbeitet werden.

Alle aktiven Leistungen auflisten

Liste alle aktiven Leistungen sortiert nach deren Namen auf:

GET /services.xml
GET /services.json

Parameter

name Gibt nur die Einträge zurück, deren Namen den übergebenen String enthalten. Groß- und Kleinschreibung wird ignoriert.
limit Mit dem Parameter limit ist es möglich, die maximale Anzahl der ausgegebenen Einträge zu begrenzen.
Default: unbegrenzt
page In Kombination mit dem Parameter limit können Folgeseiten ausgegeben werden.
Default: 1

Antwort

Status: 200 OK
[
   {
      "service": {...}
   },
   {
      "service": {...}
   }
]
Status: 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<services type="array">
   <service>
      ...
   </service>
   <service>
      ...
   </service>
</services>

Alle archivierten Leistungen auflisten

Liste alle archivierten Leistungen sortiert nach deren Namen auf:

GET /services/archived.xml
GET /services/archived.json

Es können die gleichen Parameter wie bei den aktiven Leistungen verwendet werden.

Einzelne Leistung anzeigen

Rufe eine Leistung nach ihrer id auf:

GET /services/:id.xml
GET /services/:id.json

Antwort

Status: 200 OK
{
   "service": {
        "id": 38672,
        "name": "Website Konzeption",
        "note": "",
        "hourly_rate": 3300,
        "archived": false,
        "billable": true,
        "created_at": "2009-12-13T12:12:00+01:00",
        "updated_at": "2015-12-13T07:20:04+01:00"
    }
}
Status: 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<service>
   <id type="integer">38672</id>
   <name>Website Konzeption</name>
   <note></note>
   <billable type="boolean">true</billable>
   <hourly-rate type="integer">3300</hourly-rate>
   <archived type="boolean">false</archived>
   <updated-at type="datetime">2015-12-13T07:20:04+01:00</updated-at>
   <created-at type="datetime">2009-12-13T12:12:00+01:00</created-at>
</service>

Eine Leistung erstellen

Erstellt eine neue Leistung; alle Attribute – bis auf name – sind optional.

POST /services.xml
POST /services.json

Attribute

name Darf nicht leer sein!
note Default: "" (leerer String)
hourly_rate Stundensatz in Cent (ein Hundertstel der Basiseinheit, unabhängig von der Währung)
Default: null
billable true oder false
Default: true
archived true oder false
Default: false

Anfrage

Content-Type: application/json
{
   "service": {
      "name": "Schulung",
      "billable": false
   }
}
Content-Type: application/xml
<service>
   <name>Schulung</name>
   <billable>false</billable>
</service>

Antwort

Status: 201 Created
Location: https://demo.mite.de/services/702943.json
{
   "service": {
      "id": 702943
      "name": "Schulung",
      "note": "",
      "hourly_rate": null,
      "archived": false,
      "billable": false,
      "created_at": "2015-10-13T22:12:00+01:00",
      "updated_at": "2015-10-13T22:12:00+01:00"
   }
}
Status: 201 Created
Location: https://demo.mite.de/services/702943.xml
<?xml version="1.0" encoding="UTF-8"?>
<service>
   <id type="integer">702943</id>
   <name>Schulung</name>
   <note></note>
   <billable type="boolean">false</billable>
   <hourly-rate type="integer" nil="true"></hourly-rate>
   <archived type="boolean">true</archived>
   <updated-at type="datetime">2015-10-13T22:12:00+01:00</updated-at>
   <created-at type="datetime">2015-10-13T22:12:00+01:00</created-at>
</service>

Eine Leistung bearbeiten

Aktualisiere eine Leistung mit den übergebenen Attributen:

PATCH /services/:id.xml
PATCH /services/:id.json

Anfrage

Content-Type: application/json
{
   "service": {
      "name": "Konzeption"
   }
}
Content-Type: application/xml
<service>
   <note>Konzeption</note>
</service>

Antwort

Status: 200 OK
{leer}

Wenn du den Stundensatz änderst, wird dieser sich per Default nur auf Zeiteinträge auswirken, die von jetzt an erstellt werden. Wenn du den neuen Stundensatz auch auf bereits vorhandene Zeiteinträge anwenden möchtest, setze bitte das zusätzliche Attribut update_hourly_rate_on_time_entries auf true:

Content-Type: application/json
{
   "service": {
      "hourly_rate": 12000,
      "update_hourly_rate_on_time_entries": true
   }
}
Content-Type: application/xml
<service>
   <hourly-rate>12000</hourly-rate>
   <update-hourly-rate-on-time-entries>12000</update-hourly-rate-on-time-entries>
</service>

Eine Leistung löschen

Lösche eine Leistung:

DELETE /services/:id.xml
DELETE /services/:id.json

Antwort

Status: 200 OK
{leer}

Du kannst eine Leistung nur löschen, wenn ihr keine Zeiteinträge zugeordnet sind. Ansonsten erhältst du folgende Antwort:

Status: 422 Unprocessable Entity
{
   "error": "Diese Leistung kann nicht gelöscht werden, da an \
ihr Zeiteinträge hängen. Archiviere sie stattdessen."
}
Status: 422 Unprocessable Entity
<?xml version="1.0" encoding="UTF-8"?>
<errors>
   <error>Diese Leistung kann nicht gelöscht werden, da an ihr \
Zeiteinträge hängen. Archiviere sie stattdessen.</error>
</errors>