- Alle aktiven Projekte auflisten
- Alle archivierten Projekte auflisten
- Einzelnes Projekt anzeigen
- Ein Projekt erstellen
- Ein Projekt bearbeiten
- Ein Projekt löschen
Bitte beachten: Projekte können von Zeiterfassern nicht modifiziert, erstellt oder gelöscht werden. Lesen können Zeiterfasser nur die für sie freigegebenen Projekte.
Alle aktiven Projekte auflisten
Liste alle aktiven Projekte sortiert nach deren Namen auf:
GET /projects.xml
GET /projects.json
Parameter
name | Gibt nur die Einträge zurück, deren Namen den übergebenen String enthalten. Groß- und Kleinschreibung wird ignoriert. |
customer_id | Filtere die Projekte nach dem Kunden. Erlaubt sind eine einzelne ID sowie mehrere durch Komma getrennte IDs. |
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
[ { "project": {...} }, { "project": {...} } ]
<?xml version="1.0" encoding="UTF-8"?> <projects type="array"> <project> ... </project> <project> ... </project> </projects>
Alle archivierten Projekte auflisten
Liste alle archivierten Projekte sortiert nach deren Namen auf:
GET /projects/archived.xml
GET /projects/archived.json
Es können die gleichen Parameter wie bei den aktiven Projekten verwendet werden.
Einzelnes Projekt anzeigen
Rufe ein Projekt nach dessen id auf:
GET /projects/:id.xml
GET /projects/:id.json
Antwort
{ "project": { "id": 643, "name": "Open-Source", "note": "valvat, memento et all.", "customer_id": 291, "customer_name": "Yolk", "budget": 0, "budget_type": "minutes", "hourly_rate": 6000, "archived": false, "active_hourly_rate": "hourly_rate", "hourly_rates_per_service": [ { "service_id": 31272, "hourly_rate": 4500 }, { "service_id": 149228, "hourly_rate": 5500 } ], "created_at": "2011-08-17T12:06:57+02:00", "updated_at": "2015-02-19T10:53:10+01:00" } }
<?xml version="1.0" encoding="UTF-8"?> <project> <id type="integer">643</id> <name>Open-Source</name> <note>valvat, memento et all.</note> <budget type="integer">0</budget> <budget-type>minutes</budget> <archived type="boolean">false</archived> <customer-id type="integer">219</customer-id> <customer-name>Yolk</customer-name> <hourly-rate type="integer">6000</hourly-rate> <active-hourly-rate>hourly_rate</active-hourly-rate> <hourly-rates-per-service type="array"> <hourly-rate-per-service> <service-id type="integer">31272</service-id> <hourly-rate type="integer">4500</hourly-rate> </hourly-rate-per-service> <hourly-rate-per-service> <service-id type="integer">149228</service-id> <hourly-rate type="integer">5500</hourly-rate> </hourly-rate-per-service> </hourly-rates-per-service> <updated-at type="datetime">2011-08-17T12:06:57+02:00</updated-at> <created-at type="datetime">2015-02-19T10:53:10+01:00</created-at> </project>
Ein Projekt erstellen
Erstellt ein neues Projekt; alle Attribute – bis auf name – sind optional.
POST /projects.xml
POST /projects.json
Attribute
name | Darf nicht leer sein! |
note | Default: "" (leerer String) |
customer_id | Default: null (keinem Kunden zugeordnet) |
budget | Budget in Minuten oder Cents (je nach budget_type) Default: 0 (kein Budget) |
budget_type | "minutes" (Default), "minutes_per_month", "cents" oder "cents_per_month" |
active_hourly_rate | null (Default), "hourly_rate" oder "hourly_rates_per_service" |
hourly_rate | Stundensatz in Cent (ein Hundertstel der Basiseinheit, unabhängig von der Währung). Wird verwendet wenn active_hourly_rate auf "hourly_rate" gesetzt ist. Default: null |
hourly_rates_per_service | Liste der Stundensätze je nach Leistung. Wird verwendet wenn active_hourly_rate auf "hourly_rates_per_service" gesetzt ist. Default: [] (leerer Array) |
archived | true oder false Default: false |
Anfrage
{ "project": { "name": "Website", "budget": 45000, "budget_type": "cents" } }
<project> <name>Website</name> <budget>45000</budget> <budget-type>cents</budget-type> </project>
Antwort
Location: https://demo.mite.de/projects/583241.json
{ "project": { "id": 583241, "name": "Website", "note": "", "customer_id": null, "budget": 45000, "budget_type": "cents", "hourly_rate": null, "archived": false, "active_hourly_rate": null, "hourly_rates_per_service": [], "created_at": "2015-10-15T11:40:49+02:00", "updated_at": "2015-10-15T11:40:49+02:00" } }
Location: https://demo.mite.de/projects/583241.xml
<?xml version="1.0" encoding="UTF-8"?> <project> <id type="integer">583241</id> <name>Website</name> <note></note> <budget type="integer">36000</budget> <budget-type>cents</budget> <archived type="boolean">false</archived> <customer-id type="integer" nil="true"/> <hourly-rate type="integer" nil="true"/> <active-hourly-rate nil="true"/> <hourly-rates-per-service type="array"/> <updated-at type="datetime">2015-10-15T11:40:49+02:00</updated-at> <created-at type="datetime">2015-10-15T11:40:49+02:00</created-at> </project>
Ein Projekt bearbeiten
Aktualisiere ein Projekt mit den übergebenen Attributen:
PATCH /projects/:id.xml
PATCH /projects/:id.json
Anfrage
{ "project": { "archived": true } }
<project> <archived>true</archived> </project>
Antwort
{leer}
Wenn du eines der für den Stundensatz ausschlaggebenden Attribute (active_hourly_rate, hourly_rate und/oder hourly_rates_per_service) änderst, wird diese Änderung 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:
{ "project": { "hourly_rate": 12000, "update_hourly_rate_on_time_entries": true } }
<project> <hourly-rate>12000</hourly-rate> <update-hourly-rate-on-time-entries>12000</update-hourly-rate-on-time-entries> </project>
Ein Projekt löschen
Lösche ein Projekt:
DELETE /projects/:id.xml
DELETE /projects/:id.json
Antwort
{leer}
Du kannst ein Projekt nur löschen, wenn ihm keine Zeiteinträge zugeordnet sind. Ansonsten erhältst du folgende Antwort:
{ "error": "Dieses Projekt kann nicht gelöscht werden, \ da an ihm Zeiteinträge hängen. Archiviere es stattdessen." }
<?xml version="1.0" encoding="UTF-8"?> <errors> <error>Dieses Projekt kann nicht gelöscht werden, \ da an ihm Zeiteinträge hängen. Archiviere es stattdessen.</error> </errors>