EO Anzeigen-Assistent API documentation version v1
https://anzeigenassistent.api.eberl-online.net/{version}
- version: required(v1)
EO Anzeigen-Assistent
Testserver: https://anzeigenassistent.hydra.eberl-online.net/v1/
Der Microservice ermöglicht das Speichern und Holen von Daten, die vom Anzeigeassistenten (Web2Print) benötigt werden.
Merkmale:
- Der Service ist öffentlich über eine SSL-verschlüsselte Schnittstelle verfügbar (s. URL oben).
- Der Service verfügt über eine REST-Schnittstelle, die JSON-Daten zurückgibt bzw. empfängt.
- Der Zugang wird über JWT-Tokens geregelt.
Generelle Beschreibung
Rückgabewerte
Generell gilt:
- 20x-Rückgabe sind ok
- 40x-Rückgaben sind Fehler
Die Rückgaben erfolgen in JSON.
Falls keine Fehler zurückgegeben wurden, werden schlicht die verlangten Daten als JSON zurückgegeben (also z.B. die Liste der angeforderten Objekte).
Bei Fehlern wird ein JSON mit der Fehlerbeschreibung zurückgegeben, wie das Beispiel zeigt:
{
"error": "error_message",
"data": {
"...": "..."
}
}
error
enthält einen Fehlerschlüssel als String, der entsprechend im Frontend übersetzt werden muss.data
enthält ggf. weitere Informationen zum Fehler, kann aber leer sein.
Rechte
Der Dienst überprüft die Validität der JWT-Tokens. Beim ersten Abruf holt sich der Dienst dazu den öffentlichen Schlüssel vom Authentifizuerungsserver https://auth.api.eberl-online.net/v1. Die Schlüssel werden zur Prüfung der Tokens benötigt und müssen vom Server für eine Weile zwischengespeichert werden.
Jedes JWT-Token enthält ein Feld Scope die Berechtigungen des Anfragenden Benutzer oder Dienstes. Folgende Scopes werden vom Dienst überprüft:
role:admin
- Benutzer mit diesem Scope dürfen alles.principal:{principal_id}
- Benutzer mit diesem Scope dürfen a) API-Aufrufe tätigen, welche mit diesem Scope gekennzeichnet sind und b) Daten sehen und ändern, welche als Feld principal_id eine übereinstimmende Id besitzen.sibling:{principal_id}
- Benutzer mit diesem Scope dürfen a) API-Aufrufe tätigen, welche mit diesem Scope gekennzeichnet sind und b) Daten sehen und ändern, welche als Feld principal_id eine übereinstimmende Id besitzen (Untermandanten dieses Mandanten).assistentuser
- Benutzer mit diesem Scope dürfen Anzeigen erstellen und Daten des zugehörigen Mandanten sehen, diese aber nicht ändern (verwendet im Assistenten zum Abruf der Daten). Verwendet wird die Id des eingeloggten Service-Provider-Datensatzes (eine UUID).
Mehr zu den JWT-Tokens und der Authentifizierung in https://auth.api.eberl-online.net/v1/
/service_providers
Aktionen für Gastgeber/Service Providers aus TOMAS
Gibt alle Gastgeber aus bzw. sucht nach diesen (mandantenspezifisch). Die Gesamtzahl der Treffer befindet sich im Header.
Neuen Gastgeber anlegen.
get /service_providers
Gibt alle Gastgeber aus bzw. sucht nach diesen (mandantenspezifisch). Die Gesamtzahl der Treffer befindet sich im Header.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- tomas_id: (string)
Suche alle Gastgeber mit dieser TOMAS-Id
Example:
AUT00020100012345678
- query: (string)
Volltextsuche nach Id, Titel, Login, E-Mail, Straße, PLZ und Stadt
- sort: (string)
Feldname, nach dem Sortiert werden soll
- direction: (string)
entweder asc oder desc, Sortierreihenfolge
- offset: (integer - default: 0)
Offset vom ersten Treffer
- limit: (integer - default: 20)
maximale Anzahl Treffer pro Seite
- with_login_tokens: (integer)
Falls gesetzt, werden die Login-Tokens für die Service Providers berechnet und ausgegeben (nur Mandant und Admin)
HTTP status code 200
Headers
- X-Count: required(string)
Gesamtzahl der Treffer.
Body
Media type: application/json
Type: array of serviceProviderBase
Items: serviceProvider
- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /service_providers
Neuen Gastgeber anlegen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- title: required(string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- password: required(string)
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"password": "supergeheim",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
]
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false,
"contact_declined": false,
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z",
"last_login": null,
"last_action": null
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Finde Eintrag nach Id.
Gastgeber-Basisdaten ändern.
Gastgeber löschen - löscht auch alle zugehörigen Bilder und Anzeigen.
get /service_providers/{id}
Finde Eintrag nach Id.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false,
"contact_declined": false,
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z",
"last_login": null,
"last_action": null
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /service_providers/{id}
Gastgeber-Basisdaten ändern.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- login: (string)
- password: (string)
Example:
{
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"password": "neues_passwort",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false,
"contact_declined": false,
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z",
"last_login": null,
"last_action": null
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /service_providers/{id}
Gastgeber löschen - löscht auch alle zugehörigen Bilder und Anzeigen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false,
"contact_declined": false,
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z",
"last_login": null,
"last_action": null
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Finde Eintrag für aktuell eingeloggten Benutzer.
get /service_providers/mine
Finde Eintrag für aktuell eingeloggten Benutzer.
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Alpenchalet Gutewiese",
"tomas_id": "AUT00020100012345678",
"login": "office@alpenchalet-gutewiese.at",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Alpenchalet Gutewiese GmbH",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"features": [
"online_bookable",
"123545",
"xyz"
],
"is_test_user": false,
"contact_declined": false,
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z",
"last_login": null,
"last_action": null
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Finde Eintrag nach Login und Passwort für bestimmten Mandanten.
post /service_providers/login
Finde Eintrag nach Login und Passwort für bestimmten Mandanten.
Body
Media type: application/json
Type: object
Properties- login: (string)
Benutzername, mit dem man sich einloggen will
- salt: (string)
zufälliger Salt-String für den Password-Hash in
password
- password: (string)
SHA256-geshashed Passwort mit Saltwert von oben (
SHA256(salt:plaintext_password)
) - principal_id: required(string)
Id des Mandanten für diesen Benutzer, der eingeloggt werden will.
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- login_token: required(string)
Statt login, salt und password kann auch mit einem vom Server generierten login_token eingeloggt werden. Diese können von Admins und Mandanten per /service_providers?with_login_tokens=1&principal_id=:id ausgelesen werden.
Example:
{
"login": "testini@test.de",
"salt": "blegsox!Rhybryev3poockvet2",
"password": "7e7d0b5995f47e316bf181d63d7493cefb0de162c4077f627bec00f62899d9da",
"principal_id": "5c5d0632-c9d3-4f96-af7e-839a2796b7b6"
}
HTTP status code 200
Login war erfolgreich - JWT-Token wurde erstellt.
Body
Media type: application/json
Type: object
Properties- jwt: required(string)
JWT Token for this session.
Example:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
- serviceProvider: required(object)
Service Provider/Leistungsträger importiert aus TOMAS
- title: (string)
Betriebsname
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- address: required(object)
Adressdaten
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: required(object)
Rechnungsanschrift (falls abweichend)
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- features: (array of string)
Liste von Feature-Ids, welche für diesen Mandanten zutreffen.
- is_test_user: (boolean - default: false)
True, falls Testbenutzer
- contact_declined: (boolean - default: false)
True, falls kein weiterer Kontakt wegen Anzeigen gewünscht ist.
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- tomas_id: required(string)
TOMAS ID
Example:
AUT00020100012345678
- login: required(string)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- last_login: (datetime)
Letzter Login
Example:
2016-02-28T16:41:41.090Z
- last_action: (datetime)
Letzte Aktion des Benutzers (mit der API)
Example:
2016-02-28T16:41:41.090Z
Example:
{ "principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b", "_id": "960c927b-5582-4af0-a771-6f7cbf79ad23", "title": "Alpenchalet Gutewiese", "tomas_id": "AUT00020100012345678", "login": "office@alpenchalet-gutewiese.at", "address": { "street": "Gutweg 1", "zip": "4356", "city": "Gutwiesenberg", "phone": "+39-1234-456788", "fax": "+39-1234-456799", "email": "office@alpenchalet-gutewiese.at", "web": "http://www.alpenchalet-gutewiese.at", "contact_person": "Herr Müller" }, "payment": { "title": "Alpenchalet Gutewiese GmbH", "salutation": "Herr", "first_name": "Alfons", "last_name": "Müller", "street": "Gutweg 1", "zip": "4356", "city": "Gutwiesenberg" }, "features": [ "online_bookable", "123545", "xyz" ], "is_test_user": false, "contact_declined": false, "created": "2016-02-28T16:41:41.090Z", "changed": "2016-02-28T16:41:41.090Z", "last_login": null, "last_action": null }
- title: (string)
HTTP status code 401
Login fehlerhaft.
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Logge aus der lokalen Sitzung aus (nur Assistenten-Benutzer/Gastgeber/Service Provider).
post /service_providers/logout
Logge aus der lokalen Sitzung aus (nur Assistenten-Benutzer/Gastgeber/Service Provider).
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: any
Example:
{}
HTTP status code 200
Ausloggen war erfolgreich, JWT-Token invalidiert.
Body
Media type: application/json
Type: any
Example:
{
"status": "OK",
"version": 1,
"message": "ok"
}
HTTP status code 401
Ausloggen war nicht erfolgreich, Token war nicht valide oder bereits ausgeloggt.
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/advertisements
Aktionen für Anzeigen
Alle Anzeigen als Liste holen - standardmäßig werden alle Anzeigen der aktuellen Saison geholt (mandantenspezifisch). Die Gesamtzahl der Treffer befindet sich im Header.
Neue Anzeigen anlegen (nur GG).
get /advertisements
Alle Anzeigen als Liste holen - standardmäßig werden alle Anzeigen der aktuellen Saison geholt (mandantenspezifisch). Die Gesamtzahl der Treffer befindet sich im Header.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Gastgeber abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- only_approved: (boolean)
Optionaler Parameter, um die Liste nur auf Anzeigen einzuschränken, die druckfertig sind.
- season_id: (string)
Optionaler Parameter, um Anzeigen einer bestimmten Saison zu holen.
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- query: (string)
Volltextsuche nach Id, Titel, Login, E-Mail, Straße, PLZ und Stadt
- sort: (string)
Feldname, nach dem Sortiert werden soll
- direction: (string)
entweder asc oder desc, Sortierreihenfolge
- with_login_tokens: (integer)
Falls gesetzt, werden die Login-Tokens für die Service Providers berechnet und ausgegeben (nur Mandant und Admin)
HTTP status code 200
Headers
- X-Count: required(string)
Gesamtzahl der Treffer.
Body
Media type: application/json
Type: array of advertisementBase
Items: advertisement
- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: required(string)
Gastgeber-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: required(string)
Saison-Referenz
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- current_step: required(number)
Aktueller Schritt
- print_approval: required(boolean)
Druckfreigabe erteilt?
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /advertisements
Neue Anzeigen anlegen (nur GG).
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- principal_id: (string)
Mandanten-Id (wird automatisch gesetzt)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: (string)
Gastgeber-Id (wird automatisch gesetzt)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: (string)
Saison-Referenz (falls nicht gesetzt, wird automatisch die aktuelle Saison verwendet)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- current_step: (number - default: 1)
Aktueller Schritt (wird automatisch auf Default gesetzt, wenn leer)
Example:
{
"service_provider_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"title": "Anzeige 1"
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: required(string)
Gastgeber-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: required(string)
Saison-Referenz
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- current_step: required(number)
Aktueller Schritt
- print_approval: required(boolean)
Druckfreigabe erteilt?
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "78bab0ca-7233-43da-b4f8-d4c120547101",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"service_provider_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"season_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"sp_type": "0",
"sp_type_string": "Pension",
"format": "1/2 Seite, 3 Bilder",
"price": 1099.99,
"current_step": 3,
"print_approval": true,
"pdf_file": "5b85ff54102000d00005ab12",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Unsere kleine Pension",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"data": {
"baskets": 1,
"features": [ "XP1", "AXZ", "991" ],
"sub_title": "Das Beste am Robbenstrand"
}
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Bestimmte Anzeige abfragen.
Anzeigen ändern (nur GG).
Anzeigen löschen.
get /advertisements/{id}
Bestimmte Anzeige abfragen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: required(string)
Gastgeber-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: required(string)
Saison-Referenz
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- current_step: required(number)
Aktueller Schritt
- print_approval: required(boolean)
Druckfreigabe erteilt?
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "78bab0ca-7233-43da-b4f8-d4c120547101",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"service_provider_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"season_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"sp_type": "0",
"sp_type_string": "Pension",
"format": "1/2 Seite, 3 Bilder",
"price": 1099.99,
"current_step": 3,
"print_approval": true,
"pdf_file": "5b85ff54102000d00005ab12",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Unsere kleine Pension",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"data": {
"baskets": 1,
"features": [ "XP1", "AXZ", "991" ],
"sub_title": "Das Beste am Robbenstrand"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /advertisements/{id}
Anzeigen ändern (nur GG).
- role:admin
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- current_step: (number)
Aktueller Schritt
- print_approval: (boolean)
Druckfreigabe erteilt?
Example:
{
"_id": "78bab0ca-7233-43da-b4f8-d4c120547101",
"current_step": 3,
"print_approval": false,
"sp_type": "0",
"sp_type_string": "Pension",
"format": "1/2 Seite, 3 Bilder",
"price": 1099.99,
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Unsere kleine Pension",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"data": {
"baskets": 1,
"features": [ "XP1", "AXZ", "991" ],
"sub_title": "Das Beste am Robbenstrand"
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: required(string)
Gastgeber-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: required(string)
Saison-Referenz
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- current_step: required(number)
Aktueller Schritt
- print_approval: required(boolean)
Druckfreigabe erteilt?
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "78bab0ca-7233-43da-b4f8-d4c120547101",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"service_provider_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"season_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"sp_type": "0",
"sp_type_string": "Pension",
"format": "1/2 Seite, 3 Bilder",
"price": 1099.99,
"current_step": 3,
"print_approval": true,
"pdf_file": "5b85ff54102000d00005ab12",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Unsere kleine Pension",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"data": {
"baskets": 1,
"features": [ "XP1", "AXZ", "991" ],
"sub_title": "Das Beste am Robbenstrand"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /advertisements/{id}
Anzeigen löschen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- title: (string)
Titel der Anzeige
- sort_title: (string)
Sortiertitel
- sp_type: (string)
Typ des Service Provider/Leistungsträgers
- sp_type_text: (string)
Typ des Service Provider/Leistungsträgers (Text für Dashboard)
- format: (string)
Format der Anzeige (Text)
- status: (string - default: none)
Aktueller Status des Gastgebers (rot, gelb, grün)
- price: (number)
Preis
- pdf_file: (string)
Referenz auf generierte PDF-Datei (MongoId)
- internal_status: (one of 00_unchecked, 10_in_consultation, 20_approved)
Interner Status für Dokumente, die eine Druckfreigabe bekommen haben.
- data: (object)
Beliebige Daten als Schlüssel-Wert-Paare oder Unterdokumente erstellt (auch Arrays, u.ä. möglich).
Example:
{ "baskets": 1, "features": [ "XP1", "AXZ", "991" ], "sub_title": "Das Beste am Robbenstrand" }
- address: (object)
Adressdaten - Kopie vom Gastgeber beim erstellen
- street: (string)
- zip: (string)
- city: (string)
- phone: (string)
- fax: (string)
- email: (string)
- web: (string)
- contact_person: (string)
- payment: (object)
Rechnungsanschrift - Kopie vom Gastgeber beim erstellen
- title: (string)
- salutation: (string)
- first_name: (string)
- last_name: (string)
- street: (string)
- zip: (string)
- city: (string)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- service_provider_id: required(string)
Gastgeber-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- season_id: required(string)
Saison-Referenz
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title_ascii: (string)
ASCII-Repräsentation des Titels (zum Sortieren nach Wörterbuch)
- sort_title_ascii: (string)
ASCII-Sortiertitel (zum Sortieren nach Wörterbuch)
- current_step: required(number)
Aktueller Schritt
- print_approval: required(boolean)
Druckfreigabe erteilt?
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "78bab0ca-7233-43da-b4f8-d4c120547101",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"service_provider_id": "960c927b-5582-4af0-a771-6f7cbf79ad23",
"season_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"sp_type": "0",
"sp_type_string": "Pension",
"format": "1/2 Seite, 3 Bilder",
"price": 1099.99,
"current_step": 3,
"print_approval": true,
"pdf_file": "5b85ff54102000d00005ab12",
"address": {
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg",
"phone": "+39-1234-456788",
"fax": "+39-1234-456799",
"email": "office@alpenchalet-gutewiese.at",
"web": "http://www.alpenchalet-gutewiese.at",
"contact_person": "Herr Müller"
},
"payment": {
"title": "Unsere kleine Pension",
"salutation": "Herr",
"first_name": "Alfons",
"last_name": "Müller",
"street": "Gutweg 1",
"zip": "4356",
"city": "Gutwiesenberg"
},
"data": {
"baskets": 1,
"features": [ "XP1", "AXZ", "991" ],
"sub_title": "Das Beste am Robbenstrand"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Status einer abgeschlossenen Anzeige zurücksetzen.
put /advertisements/reset/{id}
Status einer abgeschlossenen Anzeige zurücksetzen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Internen Status setzen.
put /advertisements/update_internal_status/{id}
Internen Status setzen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
ZIP-Export
get /advertisements/export
ZIP-Export
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
ZIP-Export Test
get /advertisements/export_filenames
ZIP-Export Test
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
HTTP status code 200
Ok.
Body
Media type: application/json
Type: any
Example:
[
"001_test.pdf",
"002_test.pdf",
"003_test.pdf"
]
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/configs
Mandantenkonfiguration
Alle Konfigurationen auslesen (nur Admins).
Neue Konfiguration erstellen (neuer Mandant, nur Admins)
get /configs
Alle Konfigurationen auslesen (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
HTTP status code 200
Body
Media type: application/json
Type: array of object
Items: config
- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /configs
Neue Konfiguration erstellen (neuer Mandant, nur Admins)
- role:admin
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_directory_parts": [
"data.lang"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Bestimmte Konfiguration abfragen.
Konfiguration ändern (nur Admins).
Konfiguration löschen (nur Admins).
get /configs/{id}
Bestimmte Konfiguration abfragen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /configs/{id}
Konfiguration ändern (nur Admins).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /configs/{id}
Konfiguration löschen (nur Admins).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- _id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- url: required(string)
URL zum Anzeigenassistenten (vollständig!)
Example:
https://bremerhaven.eberl-online.de/
- sp_features: required(array of any)
Beschreibung der Leistungsträger-Merkmale als JSON-Array
Example:
[ { "type": "single", "option": "online_bookable", "label": "Online buchbar?" }, { "type": "select", "label": "Sterne", "options": [ { "option": "12345", "label": "P*" }, { "option": "12346", "label": "P**" } ] }, { "type": "checkboxes", "label": "Merkmale allgemein", "options": [ { "option": "DCUSE", "label": "Haustiere willkommen" }, { "option": "DJSDE", "label": "am Strand" } ] } ]
- sp_data_fields: required(object)
Beschreibung der Felder für Leistungsträger
Example:
{ "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "pics": { "label": "Bilder", "form": "images", "required": false } }
- sp_types: required(object)
Touristic Types, Arten von Leistungsträgern
Example:
{ "WBX00020010000100227": "Bauernhof/ Ferienhof", "WBX00020010000100220": "Ferienwohnung/ Ferienhaus" }
- export_config: required(array of any)
Export-Konfiguration
Example:
[ { "type": "filter", "selector": "feature", "query": "feature1", "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]}, { "type": "filter", "selector": "feature", "query": [ "feature2", "feature3" ], "subqueries": [ { "type": "sorter", "sortfield": "address.zip", "direction": "asc" }, { "type": "sorter", "sortfield": "title_ascii", "direction": "asc" } ]} ]
Example:
{
"_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"url": "https://bremerhaven.eberl-online.de/",
"sp_features": [
{
"type": "single",
"option": "online_bookable",
"label": "Online buchbar?"
},
{
"type": "select",
"label": "Sterne",
"options": [
{
"option": "12345",
"label": "P*"
},
{
"option": "12346",
"label": "P**"
}
]
},
{
"type": "checkboxes",
"label": "Merkmale allgemein",
"options": [
{
"option": "DCUSE",
"label": "Haustiere willkommen"
},
{
"option": "DJSDE",
"label": "am Strand"
}
]
}
],
"sp_data_fields": {
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"pics": {
"label": "Bilder",
"form": "images",
"required": false
}
},
"export_config": {
"filename": "bremerhaven.zip",
"pdf_file_parts": [
"title_ascii"
],
"pdf_file_parts_join": "-",
"queries": [
{
"type": "definition",
"name": "final_sort",
"description": "Finale Sortierung der GG",
"define": [
{
"type": "sorter",
"selectors": [
{
"address+zip": "asc",
"address+street": "asc"
}
]
}
]
},
{
"type": "definition",
"name": "main_sort",
"description": "Hauptsortierung nach Hoteltyp",
"define": [
{
"type": "filter",
"selector": "sp_type",
"query": "xHotel",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xJugendherberge",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xPension",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienzimmer",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFerienhaus",
"subqueries": "final_sort"
},
{
"type": "filter",
"selector": "sp_type",
"query": "xFewo",
"subqueries": "final_sort"
}
]
},
{
"type": "filter",
"selector": "address.city",
"query": "^Bremerhaven",
"regex": true,
"subqueries": "main_sort"
},
{
"type": "filter",
"selector": "address.city",
"query": "^((?!Bremerhaven).)",
"regex": true,
"subqueries": "main_sort"
}
],
"annotate_pdfs": {
"embedFonts": [
"Economica-Bold",
"Economica-Regular"
],
"texts": [
{
"type": "centeredFromTop",
"text": "_I_",
"top": 20.43,
"left": 8.79,
"leftMax": 28.63,
"fontSize": 12.6,
"font": "Economica-Bold",
"colorRGB": [1, 1, 1]
},
{
"type": "leftFromBottom",
"text": "www.awc.de/_0I_",
"left": 17.42995,
"bottom": 20.4,
"fontSize": 7,
"font": "Economica-Regular",
"colorRGB": [0.96, 0.51, 0.13]
}
]
}
},
"sp_types": {
"WBX00020010000100227": "Bauernhof/ Ferienhof",
"WBX00020010000100220": "Ferienwohnung/ Ferienhaus"
}
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/seasons
Aktionen für Saisonen/Jahre
Alle Saisonen/Jahre als Liste holen (mandantenspezifisch).
Neue Saison/neues Jahr anlegen (nur Admins).
get /seasons
Alle Saisonen/Jahre als Liste holen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- is_last: (boolean)
Auswahl auf Saisonen einschränken, die ist_last gesetzt haben.
- type: (string)
Optionaler Parameter, um auf Saisontypen (summer, winter) eizuschränken.
HTTP status code 200
Body
Media type: application/json
Type: array of seasonBase
Items: season
- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /seasons
Neue Saison/neues Jahr anlegen (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- title: required(string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Sommer/Winter 2018",
"type": "summer",
"is_current": true
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018",
"is_current": true,
"type": "summer",
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Bestimmte Saisonen/Jahre abfragen.
Saison/Jahr ändern (nur Admins).
Saison/Jahr löschen (nur Admins).
get /seasons/{id}
Bestimmte Saisonen/Jahre abfragen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018",
"is_current": true,
"type": "summer",
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /seasons/{id}
Saison/Jahr ändern (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Example:
{
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018"
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018",
"is_current": true,
"type": "summer",
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /seasons/{id}
Saison/Jahr löschen (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018",
"is_current": true,
"type": "summer",
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Aktuelle Saison abfragen (mandantenspezifisch oder als Admin mit Query Parameter).
get /seasons/getcurrent
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- title: (string)
- is_current: (boolean - default: false)
True, falls dieser Datensatz das aktuelle Jahr ist.
- is_last: (boolean - default: false)
True, falls dieser Datensatz die letzte Saison ist (kann mehrfach gesetzt werden, z.B. letzte Sommersaison u.ä.).
- type: (string)
Falls relevant, Typ der Saison (kann summer oder winter sein)
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"_id": "3543ee4f-8c0e-40d9-ace8-6f25cd6b3c9c",
"title": "Sommer/Winter 2018",
"is_current": true,
"type": "summer",
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/metadata_groups
Aktionen für Metadaten-Gruppen
Alle Metadatengruppen als Liste holen (mandantenspezifisch).
Neue Metadaten-Gruppe anlegen (nur Admins).
get /metadata_groups
Alle Metadatengruppen als Liste holen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- with_metadata: (boolean)
Falls auf true gesetzt, werden auch alle Metadaten als Array zur jeweiligen Gruppe mit ausgegeben.
- only_non_admin_groups: (boolean)
Falls auf true gesetzt, nur nicht-Admin-Gruppen ausgeben (falls Benutzer Admin ist, werden alle ausgegeben).
HTTP status code 200
Body
Media type: application/json
Type: array of metadataGroupBase
Items: metadataGroup
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
- sort_key: required(integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /metadata_groups
Neue Metadaten-Gruppe anlegen (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
Example:
{
"key": "discounts",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Rabatte",
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
- sort_key: required(integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "5b8d333567d038142f48998c",
"key": "discounts",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Rabatte",
"sort_key": 128,
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
HTTP status code 409
Rückgabe, falls ein Datensatz mit identischer principal_id
+ key
-Kombination schon existiert (Duplikat).
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Bestimmte Metadaten-Gruppe abfragen.
Metadaten-Gruppe ändern (nur Admins).
Metadaten-Gruppe löschen (nur Admins).
get /metadata_groups/{id}
Bestimmte Metadaten-Gruppe abfragen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
Query Parameters
- with_metadata: (boolean)
Falls auf true gesetzt, werden auch alle Metadaten als Array zur jeweiligen Gruppe mit ausgegeben.
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
- sort_key: required(integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "5b8d333567d038142f48998c",
"key": "discounts",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Rabatte",
"sort_key": 128,
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /metadata_groups/{id}
Metadaten-Gruppe ändern (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
Query Parameters
- principal_id: required(string)
Pflichtparameter: Welcher Mandant?
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- principal_id: (string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- title: (string)
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"key": "discounts",
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
- sort_key: required(integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "5b8d333567d038142f48998c",
"key": "discounts",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Rabatte",
"sort_key": 128,
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /metadata_groups/{id}
Metadaten-Gruppe löschen (nur Admins).
- role:admin
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
Query Parameters
- principal_id: required(string)
Pflichtparameter: Welcher Mandant?
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- title: required(string)
- key: required(string)
Für diesen Mandanten eindeutiger Schlüssel für diese Metadatengruppe. Damit kann der Assisten eindeutig die Daten einer Gruppe bestimmen und abfragen.
- fields: required(object)
Schema-Definition, welches Schlüssel-Werte definiert (s. auch Beispiel). Die Definition ist nur für das Dashboard relevant weil hier die Werte interpretiert und als Formularelemente erstellt werden müssen.
Mögliche Werte für Key/Values + Optionen (erste Ebene =
form
):input
einzeiliger Texttype
HTML5-Eingabeformat, z.B.number
textarea
mehrzeiliger Text
Allgemeine Optionen:
label
Label/Titel im Formularrequired
Eingabe erforderlich?
Example:
{ "title": { "label": "Titel", "form": "input", "required": true }, "description": { "label": "Beschreibung", "form": "textarea", "required": false }, "discount": { "label": "Rabatt", "form": "input", "required": true, "type": "number" } }
- sort_key: required(integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"_id": "5b8d333567d038142f48998c",
"key": "discounts",
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"title": "Rabatte",
"sort_key": 128,
"fields": {
"title": {
"label": "Titel",
"form": "input",
"required": true
},
"description": {
"label": "Beschreibung",
"form": "textarea",
"required": false
},
"discount": {
"label": "Rabatt",
"form": "input",
"required": true,
"type": "number"
}
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/metadata
Aktionen für Metadaten (allgemeine Text/Inhalts-Elemente).
Alle Metadaten eines Mandanten holen (mandantenspezifisch).
Neuen Metadaten-Eintrag erstellen (mandantenspezifisch).
get /metadata
Alle Metadaten eines Mandanten holen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
Query Parameters
- principal_id: (string)
Optionaler Parameter, um die Liste für einen bestimmten Mandanten abzufragen (Rechteprüfung: Admin oder Mandant muss gesetzt sein).
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- by_group_id: (string)
Nur für eine bestimmte Gruppe dieses Mandanten ausgeben (Gruppen-Id).
HTTP status code 200
Body
Media type: application/json
Type: array of metadataBase
Items: metadata
- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
- sort_key: (integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
post /metadata
Neuen Metadaten-Eintrag erstellen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"group_key": "discounts",
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
- sort_key: (integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"group_key": "discounts",
"_id": "8bdadfea-f0ef-4f30-bbaa-88ad76d9c8a1",
"sort_key": 1,
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Metadaten-Eintrag holen (mandantenspezifisch).
Metadaten-Eintrag ändern (mandantenspezifisch).
Metadaten-Eintrag löschen (mandantenspezifisch).
get /metadata/{id}
Metadaten-Eintrag holen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
- sort_key: (integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"group_key": "discounts",
"_id": "8bdadfea-f0ef-4f30-bbaa-88ad76d9c8a1",
"sort_key": 1,
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
put /metadata/{id}
Metadaten-Eintrag ändern (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
Example:
{
"_id": "8bdadfea-f0ef-4f30-bbaa-88ad76d9c8a1",
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
}
}
HTTP status code 200
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
- sort_key: (integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"group_key": "discounts",
"_id": "8bdadfea-f0ef-4f30-bbaa-88ad76d9c8a1",
"sort_key": 1,
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
delete /metadata/{id}
Metadaten-Eintrag löschen (mandantenspezifisch).
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
HTTP status code 200
Gibt das gelöschte Objekt zurück.
Body
Media type: application/json
Type: object
Properties- values: required(object)
Enthält die im Schema der Metadaten-Gruppe definierten Werte als Schlüssel-Wert-Paare (s. Beispiel).
- principal_id: required(string)
Mandanten-Id
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- _id: required(string)
UUID (v4)
Example:
960c927b-5582-4af0-a771-6f7cbf79ad23
- group_key: required(string)
Zugehörige Metadaten-Gruppe
- sort_key: (integer)
Sortierschlüssel (kleiner kommt weiter oben)
- created: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
- changed: required(datetime)
Datumsformat (RFC3339)
Example:
2016-02-28T16:41:41.090Z
Example:
{
"principal_id": "b60b707c-1ce5-4b5d-95ac-6b5199e10b7b",
"group_key": "discounts",
"_id": "8bdadfea-f0ef-4f30-bbaa-88ad76d9c8a1",
"sort_key": 1,
"values": {
"title": "Early-Bird",
"description": "100 Tage im Voraus",
"discount": "15"
},
"created": "2016-02-28T16:41:41.090Z",
"changed": "2016-02-28T16:41:41.090Z"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
HTTP status code 405
Fehlende oder fehlerhaft formatierte Daten übergeben.
Body
Media type: application/json
Type: any
Example:
{
"error": "missing_or_malformed_data"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/files
Dateien hochladen und mit Anzeigen verknüpfen.
Neue Datei hochladen.
post /files
Neue Datei hochladen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
Body
Media type: multipart/form-data
Type: object
Properties- principal_id: required(string)
Metadaten-Id
- service_provider_id: required(string)
Gastgeber-Id
- advertisement_id: (string)
Anzeigen-Id (falls leer, dann ist der Datensatz mit Gastgeber verküpft)
- file: required(binary)
Datei, die hochgeladen werden soll
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"_id": "5b83e5d184c6d4086633c954",
"principal_id": "4675850a-826b-4830-8b74-d4585881577f",
"service_provider_id": "43f0538c-5d56-4546-b5ab-d95310d148af",
"advertisement_id": "eb842583-0ced-482a-9d16-f37d6f65715d",
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
Datei herunterladen nach MongoId der Datei - ist auch per http verfügbar wegen Antenna House Server.
Bestehende Datei nach MongoId löschen.
get /files/{id}
Datei herunterladen nach MongoId der Datei - ist auch per http verfügbar wegen Antenna House Server.
delete /files/{id}
Bestehende Datei nach MongoId löschen.
- role:admin
- principal:{principal_id}
- sibling:{principal_id}
- assistentuser
Die API erwartet JWT-Token bei diesem Request.
URI Parameters
- id: required(string)
HTTP status code 200
Datei gelöscht.
Body
Media type: application/json
Type: any
Example:
{
"id": "5b83e5d184c6d4086633c954"
}
HTTP status code 404
Resource nicht gefunden
Body
Media type: application/json
Type: any
Example:
{
"error": "not_found"
}
Secured by oauth_2_0
Headers
- Authorization: required(string)
Authentifizierung erfolgt über Bearer-Token im HTTP-Header.
Example:
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh...
Query Parameters
- access_token: required(string)
Alternative Methode, um ein JWT-Token zu übergeben. Nicht zusammen mit dem "Authorization"-Header verwenden!
HTTP status code 401
Token fehlt, ist abgelaufen oder nicht valide. Oder: Keine Berechtigung (s. Fehlermeldung im Response).
Body
Media type: application/json
Type: any
Example:
{
"error": "token_missing"
}
/status
Fragt Status ab (kann auch von Consul genutzt werden).
Fragt Status ab (kann auch von Consul genutzt werden).
get /status
Fragt Status ab (kann auch von Consul genutzt werden).