Tags¶
Tags sind Schlagworte zur erweiterten Kategorisierung von Buchungen.
Mit der bookamat–API können Tags abgefragt, hinzugefügt, geändert und gelöscht werden. Es sind also GET, POST, PUT/PATCH und DELETE Requests möglich.
Liste der Tags¶
Die Liste aller Tags wird mit einem GET Request auf die Listen URL abgefragt.
/preferences/tags/
Response¶
HTTP/1.0 200 OK
Content-Type: application/json; charset=utf-8
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 5684,
"name": "Dienstreise",
"counter_booked_bookings": 17,
"counter_open_bookings": 0,
"counter_deleted_bookings": 0,
"counter_bookingtemplates": 0
},
{
"id": 5685,
"name": "Rechnung fehlt",
"counter_booked_bookings": 9,
"counter_open_bookings": 1,
"counter_deleted_bookings": 0,
"counter_bookingtemplates": 0
},
]
}
Felder¶
- id:
Eindeutige Identifikationsnummer
- Format
- name:
Name
- Format
- String (min. 3 Zeichen, max. 40 Zeichen)
- counter_booked_bookings:
Anzahl gebuchter Buchungen
- Format
- counter_open_bookings:
Anzahl offener Buchungen
- Format
- counter_deleted_bookings:
Anzahl gelöschter Buchungen
- Format
- counter_bookingtemplates:
Anzahl Buchungsvorlagen
- Format
Filter¶
- has_bookings:
Buchungen vorhanden
- Format
- Boolean
- Beispiele
- has_bookings=true
Sortierung¶
- ordering:
Sortierung
- Möglichkeiten
- id, name
- Beispiele
- ordering=id
Tag Detail¶
Eine einzelner Tag wird mit einem GET Request auf die Detail URL abgefragt. Es sind dieselben Felder verfügbar wie bei der Listenansicht.
/preferences/tags/{id}/
Tag hinzufügen¶
Eine neuer Tag wird mit einem POST Request auf die Listen URL hinzugefügt. Der Request Body muss alle notwendigen Felder beinhalten, als Response wird der neue Tag zurückgegeben.
/preferences/tags/
Request¶
Content-Type: application/json; charset=utf-8
{
"name": "Gutschrift"
}
Response¶
HTTP/1.0 201 CREATED
Content-Type: application/json; charset=utf-8
{
"id": 5686,
"name": "Gutschrift",
"counter_booked_bookings": 0,
"counter_open_bookings": 0,
"counter_deleted_bookings": 0,
"counter_bookingtemplates": 0
}
Felder¶
Notwendige Felder sind mit * gekennzeichnet.
- name *:
Name
- Format
- String (min. 3 Zeichen, max. 40 Zeichen)
Tag ändern¶
Ein Tag kann mit einem PATCH oder PUT Request auf die Detail URL geändert werden.
/preferences/tags/{id}/
Request (PATCH/PUT)¶
Content-Type: application/json; charset=utf-8
{
"name": "Storno"
}
Response¶
Als Response wird der Tag zurückgegeben.
HTTP/1.0 202 ACCEPTED
Content-Type: application/json; charset=utf-8
{
"id": 5686,
"name": "Storno",
"counter_booked_bookings": 0,
"counter_open_bookings": 0,
"counter_deleted_bookings": 0,
"counter_bookingtemplates": 0
}
Felder¶
Die Felder sind deckungsgleich mit dem POST Request (siehe Felder beim Hinzufügen eines Tags). Beim PATCH Request sind nur die geänderten Felder anzugeben, beim PUT Request sind alle Felder notwendig. Da bei Tags ohnehin nur der Name als Feld verfügbar ist, sind die Requests bei PATCH und PUT deckungsgleich.
Tag löschen¶
Ein Tag kann mit einem DELETE Request auf die Detail URL gelöscht werden.
Bemerkung
Es können nur Tags gelöscht werden, denen keine Buchungen zugeordnet sind. Bei zugeordneten Buchungsvorlagen wird der Tag aus der Vorlage gelöscht.
/preferences/tags/{id}/
Response¶
HTTP/1.0 204 NO CONTENT