Hinweis
Projekte können von Zeiterfassern nicht bearbeitet werden. Lesen können Zeiterfasser nur die für sie freigegebenen Projekte.
Alle aktiven Projekte auflisten
GET /projects.xml
Listet alle aktiven Projekte sortiert nach deren Namen auf.
Response : 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
<project>
...
</project>
<project>
...
</project>
</projects>
Mit dem Parameter name kann die Liste eingeschränkt werden:
GET /projects.xml?name=web
Listet alle aktiven Projekte auf, deren Namen 'web' enthält. Groß-/Kleinschreibung wird ignoriert.
Standardmäßig werden alle Projekte ausgegeben, die den übergebenen Kriterien entsprechen. Mit dem Parameter limit ist es möglich, die Anzahl zu begrenzen:
GET /projects.xml?limit=100
Gibt die ersten 100 Projekte zurück. Mit dem Parameter page können die darauf folgenden Projekte ausgegeben werden:
GET /projects.xml?limit=100&page=2
Gibt die Projekte 101 bis 200 zurück.
Alle archivierten Projekte auflisten
GET /projects/archived.xml
Listet alle archivierten Projekte sortiert nach deren Namen auf. Auch hier ist eine Freitextsuche mit dem Parameter name möglich.
Einzelnes Projekt anzeigen
GET /projects/{id}.xml
Gibt ein einzelnes Projekt zurück.
Response : 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<project>
<id type="integer">123</id>
<name>Website Konzeption</name>
<note></note>
<budget type="integer">0</budget>
<budget-type>minutes</budget>
<archived type="boolean">false</archived>
<customer-id type="integer">2</customer-id>
<customer-name>LilaLaune GmbH</customer-name>
<hourly-rate type="integer">8500</hourly-rate>
<active-hourly-rate>hourly_rate</active-hourly-rate>
<hourly-rates-per-service type="array">
<hourly-rate-per-service>
<service-id type="integer">149355</service-id>
<hourly-rate type="integer">10</hourly-rate>
</hourly-rate-per-service>
</hourly-rates-per-service>
<updated-at type="datetime">2007-12-13T12:12:00+01:00</updated-at>
<created-at type="datetime">2007-12-13T12:12:00+01:00</created-at>
</project>
Erstellen
POST /projects.xml
Erstellt ein neues Projekt. Alle Parameter – bis auf den Namen – sind optional.
- note
- Default: '' (leerer String)
- budget
- in Minuten oder Cents (je nach budget_type) - Default: 0 (kein Budget)
- budget_type
- minutes (Default) oder cents
- archived
- true oder false - Default: false
- customer_id
- Default: nil
- hourly_rate
- in Cent (ein Hundertstel der Basiseinheit, unabhängig von der Währung) - Default: 0
- hourly_rates_per_service
- Liste der Stundensätze je nach Leistung - Default: [] (leerer Array)
- active_hourly_rate
- nil, hourly_rate oder hourly_rates_per_service - Default: nil
Request Body
<project>
<name>Projekt XY</name>
<archived>true</archived>
</project>
Response : 201 Created
<?xml version="1.0" encoding="UTF-8"?>
<project>
<id type="integer">123</id>
<name>Projekt XY</name>
<note></note>
<budget type="integer">0</budget>
<budget-type>minutes</budget>
<archived type="boolean">true</archived>
<customer-id type="integer" nil="true"></customer-id>
<hourly-rate type="integer">0</hourly-rate>
<active-hourly-rate nil="true"></active-hourly-rate>
<hourly-rates-per-service type="array"></hourly-rates-per-service>
<updated-at type="datetime">2008-02-11T22:12:00+01:00</updated-at>
<created-at type="datetime">2008-02-11T22:12:00+01:00</created-at>
</project>
Bearbeiten
PUT /projects/{id}.xml
Aktualisiert ein Projekt mit den übergebenen Parametern.
Request Body
<project>
<note>Go!</note>
</project>
Response : 200 OK
Wird der Stundensatz des Projektes verändert, kann über den Parameter update_hourly_rate_on_time_entries gesteuert werden, ob der neue Stundensatz auch auf existierende Zeiteinträge angewendet werden soll. Per Default werden die Zeiteinträge nicht aktualisiert; um sie zu aktualisieren setze update_hourly_rate_on_time_entries auf true.
Löschen
DELETE /projects/{id}.xml
Löscht ein Projekt. Dies ist nur möglich, wenn keine Zeit-Einträge des Projekts existieren.
