Lunar - Funktionen
Hauptartikel:
Lunar (myJACK REST)
In den nachfolgenden Absätzen werden die Funktionalitäten der API aufgeführt. Die Detailinformationen zu den einzelnen Feldtypen und den möglichen Feldwerten können der Dokumentation im GraphiQL Editor entnommen werden.
Abschnitte, die mit "Mutation" markiert sind, erlauben schreibenden Zugriff auf die API.
Die mit "Query" markierten Einträge erlauben einen lesenden Zugriff.
Die Anzahl der Datensätze, die mit einer lesenden Query als Ergebnisliste ausgegeben werden können, beschränken sich derzeit auf 10. Somit ist es erforderlich ein Paging einzubauen, um sich durch die Datensätze durchzublättern.
Kunde (Mutation)
Kunde ändern
Kunde anlegen
Kunde laden mit ID
Kunde Optin Daten ändern
Kommunikationsdaten anlegen
Kommunikationsdaten aktualisieren
Kommunikationsdaten entfernen
Kundennotiz anlegen,
Kundennotiz aktualisieren
Kundennotiz entfernen
Kundenmerkmale anlegen
Kundenmerkmale entfernen
Vorgang (Mutation)
Vorgang ändern
Vorgang anlegen
Vorgang laden über ID
Leistung zu Vorgang hinzufügen
Kundenzahlung durchführen
Reiseteilnehmer anlegen
Reiseteilnehmer aktualisieren
Reiseteilnehmer entfernen
Preiszeile anlegen
Preiszeile aktualisieren
Preiszeile entfernen
Leistungsdetail Hotel anlegen
Leistungsdetail Hotel aktualisieren
Leistungsdetail Hotel entfernen
Leistungsdetail Flug anlegen
Flugsegment anlegen
Flugsegment aktualisieren
Flugsegment entfernen
Flugticket anlegen
Flugticket aktualisieren
Flugticket entfernen
Leistungsdetail Mietwagen anlegen
Leistungsdetail Mietwagen aktualisieren
Leistungsdetail Mietwagen entfernen
Leistungsdetail Bahn anlegen
Leistungsdetail Bahn aktualisieren
Leistungsdetail Bahn entfernen
Leistungsdetail Bus anlegen
Leistungsdetail Bus aktualisieren
Leistungsdetail Bus entfernen
Leistungsdetail Versicherung anlegen
Leistungsdetail Versicherung aktualisieren
Leistungsdetail Versicherung entfernen
Leistungsdetail Schiff anlegen
Route anlegen
Passdaten anlegen
Kfz anlegen
Leistungsdetail Schiff aktualisieren
Leistungsdetail Schiff entfernen
Leistungsdetail Golf anlegen
Golfplatz anlegen
Spielzeiten anlegen
Leistungsdetail Golf aktualisieren
Leistungsdetail Golf entfernen
Leistungsdetail Freier Text anlegen
Leistungsdetail Freier Text aktualisieren
Leistungsdetail Freier Text entfernen
Leistungsdetail Online Text anlegen
Leistungsdetail Online Text aktualisieren
Leistungsdetail Online Text entfernen
Kunde suchen (Query)
Suchen und Iterieren über Kunden
Kunde anhand der myJACK Agenturnummer suchen
Kunde anhand des Erstelldatums von suchen
Kunde anhand des Erstelldatums bis suchen
Kunde anhand der Kundennummer suchen
Kunde anhand der Kundenart suchen
Kunde anhand des Vornamens suchen
Kunde anhand des Nachnamens suchen
Kunde anhand des Änderungsdatums von suchen
Kunde anhand des Änderungsdatums bis suchen
Kunde anhand der E-Mailadresse suchen
Kunde anhand der Telefonnummer suchen
Kunde anhand des Ortes suchen
Kunde anhand der Straße suchen
Kunde anhand der Postleitzahl suchen
Kunde anhand der ID suchen
Die ID des Kunden ist eine datenbankinterne vergebene ID des Datensatzes und entspricht somit nicht der myJACK Kundennummer. Diese ist für den Anwender in myJACK nicht ersichtlich. Dennoch können über diese ID Kunden selektiert werden.
Vorgang suchen (Query)
Suchen und Iterieren über Vorgänge
Vorgang anhand der ID suchen
Die ID des Vorgangs ist eine datenbankinterne vergebene ID des Datensatzes und ist für den Anwender in myJACK nicht ersichtlich. Dennoch können über diese ID Vorgänge selektiert werden
Vorgang anhand der Vorgangsnummer suchen
Vorgänge anhand der myJACK Agenturnummer suchen
Vorgang anhand eines Kunden suchen
Vorgang anhand eines Vorgangsverantwortlichen suchen
Vorgang anhand einer Rechnungsadresse suchen
Vorgang anhand des Buchungsdatums von suchen
Vorgang anhand des Buchungsdatums bis suchen
Vorgang anhand eines Provisionsempfängers suchen
Vorgang anhand einer Lieferadresse suchen
Vorgang anhand eines Zielorts suchen
Vorgang anhand des Abreisedatums suchen
Vorgang anhand des Rückreisedatums suchen
Vorgang anhand des Vorgangsstatus suchen
Vorgang anhand der Vorgangsart suchen
Die zu selektierenden Vorgangsarten umfassen alle Vorgangsarten, die es in myJACK gibt. Diese sind: Inbox, Auftrag, Gelöscht, Angebot, Altvorgang, Unterbuchung
Vorgang anhand des Änderungsdatums von suchen
Vorgang anhand des Änderungsdatums bis suchen
Vorgang anhand der Beförderungsart suchen
Vorgang anhand des Webcodes suchen
myJACK Benutzer suchen (Query)
myJACK Benutzer anhand des Logins suchen
myJACK benutzer anhand des Nachnamens suchen
myJACK Agenturstammdaten suchen (Query)
myJACK Agenturstammdaten anhand der Agenturnummer suchen
myJACK Agenturstammdaten anhand des Webcodes suchen
Leistung suchen (Query)
Leistung anhand der ID suchen
Leistungsdetail suchen (Query)
Leistungsdetail Bus anhand der ID suchen
Leistungsdetail Flug anhand der ID suchen
Leistungsdetail Freier Text anhand der ID suchen
Leistungsdetail Golf anhand der ID suchen
Leistungsdetail Hotel anhand der ID suchen
Leistungsdetail Online Text anhand der ID suchen
Leistungsdetail Versicherung anhand der ID suchen
Leistungsdetail Bahn anhand der ID suchen
Leistungsdetail Mietwagen anhand der ID suchen
Leistungsdetail Schiff anhand der ID suchen
Kunde (Mutation)
In diesem Abschnitt finden Sie alle Funktionen, die mit der Bearbeitung einer Kundenakte zusammenhängen.
Kunde ändern
Request
mutation {
update_customer(customer: 39581xxx,
proposal: {first_name: "Paul", last_name:
"Panzer", owner: "kralli", birthday: "1980-04-23"}) {
customer {
id
first_name
last_name
}
report {
error {
key
property
}
warning {
key
property
}
info {
key
property
}
}
}
}
Response
{
"data": {
"update_customer": {
"customer": {
"id": 39581xxx,
"first_name": "Paul",
"last_name": "Panzer"
},
"report": {
"error": null,
"warning": null,
"info": null
}
}
}
}
Kunde anlegen
Request
mutation {
create_customer(agency: 998, proposal: {
first_name: "Frank"
last_name:"Mustermann"
owner: "kralli"
birthday: "1980-04-23"
}) {
customer {
id
}
report {
error {
key
property
}
warning {
key
property
}
info {
key
property
}
}
}
}
Response
Kunde laden mit ID
Request
Response
Kunde Optin Daten ändern
In der Kundenakte haben Sie mehrere Felder zur Festlegung der Marketing Optionen. Diese Felder finden Sie an dieser Stelle:
Mit der unten aufgeführten Abfrage können Sie diese Daten abändern.
Request
mutation {
update_marketing_interest(customer:4711, proposal:{
email:YES,
fax:NO,
letter:UNKNOWN,
messenger:NO,
sms:NO,
telephone:YES
})
{
report{
error {
message
}
info {
message
}
warning {
message
}
}
marketing_interest {
email {
changed_timestamp
value
}
fax {
changed_timestamp
value
}
letter {
changed_timestamp
value
}
messenger {
changed_timestamp
value
}
sms {
changed_timestamp
value
}
telephone {
changed_timestamp
value
}
}
}
}
Response
{
"data": {
"update_marketing_interest": {
"report": {
"error": null,
"info": null,
"warning": null
},
"marketing_interest": {
"email": {
"changed_timestamp": "2021-04-21T11:03:03.594+02:00",
"value": "YES"
},
"fax": {
"changed_timestamp": "2021-04-21T11:03:03.6+02:00",
"value": "NO"
},
"letter": {
"changed_timestamp": "2021-04-21T11:03:03.6+02:00",
"value": "UNKNOWN"
},
"messenger": {
"changed_timestamp": "2021-04-21T11:03:03.6+02:00",
"value": "NO"
},
"sms": {
"changed_timestamp": "2021-04-21T11:03:03.6+02:00",
"value": "NO"
},
"telephone": {
"changed_timestamp": "2021-04-21T11:03:03.6+02:00",
"value": "YES"
}
}
}
}
}
Vorgang (Mutation)
Dieser Abschnitt beschäftigt sich mit den Funktionen zur Bearbeitung eines Vorgangs.
Vorgang ändern
Request
mutation {
update_folder(folder: 34529xxx, proposal:
{start_date: "2018-01-01",
end_date: "2018-02-01", destination: "PMI"}) {
folder {
id
type
start_date
end_date
destination
}
report {
error {
key
property
}
warning {
key
property
}
info {
key
property
}
}
}
}
Response
{
"data": {
"update_folder": {
"folder": {
"id": 34529xxx,
"type": "OFFER",
"start_date": "2018-01-01",
"end_date": "2018-02-01",
"destination": "PMI"
},
"report": {
"error": null,
"warning": null,
"info": [
{
"key": "recommended",
"property": "description"
}
]
}
}
}
}
Vorgang anlegen
Request
mutation {
create_folder(agency: 998, proposal: {
type: OFFER
start_date: "2018-01-01"
end_date: "2018-02-01"
delivery_address:38981463
}) {
folder {
id
}
report {
error {
key
property
}
warning {
key
property
}
info {
key
property
}
}
}
}
Response
{
"data": {
"create_folder": {
"folder": {
"id": 34529xxx
},
"report": {
"error": null,
"warning": null,
"info": [
{
"key": "recommended",
"property": "description"
}
]
}
}
}
}
Vorgang laden über ID
Request
{
folder(id: 34212xxx) {
id
web_code
web_code_active
web_code_global
time_of_last_update
creation_date
created_by {
id
expedient
first_name
last_name
}
agency {
id
name
}
billing_address {
id
first_name
last_name
place
zip_code
country
}
customer {
id
first_name
last_name
place
zip_code
country
}
state
start_date
end_date
type
type_of_product
destination
transport
description
reservations {
id
type
number
booking_date
booking_state
start_date
end_date
tour_operator
travel_type
crs_booking
pax_count
target_airport
total_price {
amount
currency
}
price_lines {
id
description
total_amount
vat_rate
}
details {
... on DetailMetadata {
id
type
}
... on FlightDetail {
id
flight_segments {
departure_airport
arrival_airport
departure_time
arrival_time
carrier
file_key
booking_class
flight_number
status
}
}
... on HotelDetail {
id
hotel {
id
name
address_addition
code
giata_id
longitude
longitude
}
}
... on InsuranceDetail {
id
insurance {
policy_number
start_date
end_date
tariff_description
}
}
}
}
travellers {
id
first_name
last_name
price {
amount
currency
}
}
memos {
id
creation_date
editor {
id
last_name
first_name
}
text
main_memo
}
}
}
Response
{
"data": {
"folder": {
"id": 34212xxx,
"web_code": "SLTCVJMJ",
"web_code_active": true,
"web_code_global": false,
"time_of_last_update": "2018-04-12T14:27:31.372+02:00",
"creation_date": "2018-03-07T11:43:06.643+01:00",
"created_by": {
"id": 107851,
"expedient": null,
"first_name": "Ernst",
"last_name": "Test"
},
"agency": {
"id": 998,
"name": "Reisebüro Mustermann GmbH"
},
"billing_address": null,
"customer": {
"id": 38776504,
"first_name": "Paul",
"last_name": "Panzer",
"place": "Musterhausen",
"zip_code": "3150",
"country": "DE"
},
"state": "BOOKED",
"start_date": "2018-05-16",
"end_date": "2018-05-23",
"type": "ORDER",
"type_of_product": "01",
"destination": "AYT",
"transport": "10",
"description": "Pauschalreise Antalya / Türkei / Paloma Oceana Resort / Kumköy",
"reservations": [
{
"id": 41210xxx,
"type": "PACKAGE",
"number": "698751201",
"booking_date": "2018-03-07",
"booking_state": "CANCEL_DONE",
"start_date": "2018-05-16",
"end_date": "2018-05-23",
"tour_operator": "TOC",
"travel_type": null,
"crs_booking": true,
"pax_count": 2,
"target_airport": "AYT",
"total_price": {
"amount": 0,
"currency": "EUR"
},
"price_lines": [
{
"id": 48325xxx,
"description": "Pauschalpreis",
"total_amount": 0,
"vat_rate": 0
}
],
"details": [
{
"id": 60567xxx,
"type": "FLIGHT",
"flight_segments": [
{
"departure_airport": "VIE",
"arrival_airport": "AYT",
"departure_time": "2018-05-16T13:55:00",
"arrival_time": "2018-05-16T17:35:00",
"carrier": "XQ",
"file_key": null,
"booking_class": "I",
"flight_number": "0191",
"status": null
},
{
"departure_airport": "AYT",
"arrival_airport": "VIE",
"departure_time": "2018-05-23T11:05:00",
"arrival_time": "2018-05-23T13:05:00",
"carrier": "XQ",
"file_key": null,
"booking_class": "I",
"flight_number": "0190",
"status": null
}
]
},
{
"id": 60567xxx,
"type": "HOTEL",
"hotel": {
"id": 32971xxx,
"name": "Paloma Oceana Resort",
"address_addition": null,
"code": "AYT 40860 A",
"giata_id": 4914,
"longitude": 31.3616
}
},
{
"id": 60885016,
"type": "INSURANCE",
"insurance": {
"policy_number": "5534623",
"start_date": "2018-05-16",
"end_date": "2018-05-17",
"tariff_description": null
}
}
]
}
],
"travellers": [
{
"id": 46045xxx,
"first_name": "Paul",
"last_name": "Panzer",
"price": {
"amount": 796,
"currency": "EUR"
}
},
{
"id": 46045xxx,
"first_name": "Martine",
"last_name": "Panzer",
"price": {
"amount": 796,
"currency": "EUR"
}
}
],
"memos": []
}
}
}
Leistung zu Vorgang hinzufügen
Request
mutation {
add_reservations(folder: 34529xxx, proposals:
{type: PACKAGE, tour_operator: "NER",
travel_type: "NAH", crs_booking: true,
start_date: "2018-01-01", end_date: "2018-01-07",
number: "32523xxx"}) {
reservation {
id
type
tour_operator
travel_type
number
start_date
end_date
}
report {
error {
key
property
}
warning {
key
property
}
info {
key
property
}
}
}
}
Response
{
"data": {
"add_reservations": [
{
"reservation": {
"id": 41808xxx,
"type": "PACKAGE",
"tour_operator": "NER",
"travel_type": "NAH",
"number": "32523xxx",
"start_date": "2018-01-01",
"end_date": "2018-01-07"
},
"report": {
"error": null,
"warning": null,
"info": null
}
}
]
}
}
Suche (Query)
Über die unterschiedlichen Selektionsmöglichkeiten der Vorgänge können sämtliche Daten, die zu einem Vorgang gehören, ebenfalls ausgegeben werden. Diese sind:
Vorgangskopfdaten
Kundendaten
Termine
Dokumente
Notizen
Kundenzahlungen
Leistungsdaten sowie Leistungsdetails
Benutzerdaten wie z. B. den Erfasser oder den Verantwortlichen
Suche und Iterieren über Kunde
Über die Query search_customer können Sie mit den Suchparametern agency und last_modified_from die zuletzt geänderten Kunden einer Agentur selektieren und darüber iterieren.
Darüber hinaus ist es auch möglich, mit Hilfe des Operators [%] eine Wildcardsuche z. B. auf last_name zu starten, z.B.
last_name: "T%"
Weitere Wildcards sind über first_name, street, zipc_code, place, phone und mail möglich.
Request
Response
Zum Iterieren auf die nächsten Ergebnisseiten wird der Parameter "after" unter Angabe des last_cursor verwendet. Der last_cursor steht in der Page-Info. Das Element has_next_page gibt an, ob weitere Ergebnisseiten abgefragt werden können.
Suchen und Iterieren über Vorgänge
Request
Response
Zum Iterieren auf die nächsten Ergebnisseiten wird der Parameter "after" unter Angabe des last_cursor verwendet. Der last_cursor steht in der Page-Info. Das Element has_next_page gibt an, ob weitere Ergebnisseiten abgefragt werden können.