Tickets - Komunikačný protokol
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Dokumentácia ExternalSystem services</title>
<style type="text/css"> </style>
</head> <body>
Obsah
Dokumentácia ExternalSystem vzdialených služieb pre modul TICKETS
História dokumentácie
<thead> </thead> <tbody> </tbody>| Dátum vydania | Verzia dokumentu | Popis zmien | Kto zmeny vykonal |
| 15.05.2015 | 1.0 | Založenie dokumentácie | Juraj Pacolt |
<footer></footer>
<a name="obsah"></a>
Obsah
- <a href="#popis">Popis</a>
-
<a href="#metody-komunikacneho-interfaceu">Metódy komunikačného interface-u</a>
- <a href="#metoda-test">Metóda "test"</a>
- <a href="#metoda-check-ticket">Metóda "checkTicket"</a>
- <a href="#metoda-use-ticket">Metóda "useTicket"</a>
- <a href="#navratove-kody">Návratové kódy</a>
<footer></footer>
<a name="popis"></a>
Popis
Komunikačný interface ExternalSystem je určený v rámci modulu Tickets na overovanie a označovanie lístkov resp. vstupeniek cez externé systémy využívajúce tento interface.
<a name="metody-komunikacneho-interfaceu"></a>
Metódy komunikačného interface-u
Komunikačný interface využíva na prenos správ protokol HTTP, prípadne HTTPS. Jednotlivé dotazy
sú typu REST, tzn. štandardné URI linky s prípadnými parametrami.
Pričom niektoré požiadavky prípadne návratové správy, resp. odpovede sú typu JSON.
Ako content type sa očakáva application/json.
V každej metóde komunikácie je potrebné uviesť registrationNumber. Toto registračné číslo je číslo
zaregistrovaného externého systému v module Tickets. Pokiaľ sa dané číslo nenájde v zozname zaregistrovaných
externých systémov, prípadne pokiaľ má externý systém zablokovanú komunikáciu, resp. nie je povolený, modul
Tickets nedovolí vykonať požiadavku.
<a name="metoda-test"></a>
Metóda "test"
Metóda test slúži iba na preverenie komunikácie a validáciu základnej funkčnosti modulu Tickets.
http://server:port/Tickets/json/ExternalSystem/test/{registrationNumber}/{testMsg}
Vstupné parametre
registrationNumber- registračné číslo externého systému v module Tickets.testMsg- testovacia správa.
Požiadavka
<code> GET http://server:port/Tickets/json/ExternalSystem/test/48973453498/Testovaci retazec ... </code>
JSON návratovej správy
<code> ... cezater icavotseT </code>
<a name="metoda-check-ticket"></a>
Metóda "checkTicket"
Pri volaní tejto metódy sa v prvom rade validuje externý systém. Potom sa preverí existencia lístka a preverí sa aj platnosť udalosti pre ktorú je lístok určený. Pokiaľ je všetko v poriadku, tak v návratovej správe na túto požiadavku sa vracajú informácie o danom lístku, resp. vstupenke.
http://server:port/Tickets/json/ExternalSystem/checkTicket
Požiadavka
<code> POST http://server:port/Tickets/json/ExternalSystem/checkTicket </code>
JSON požiadavky
<code>
{
"registrationNumber": 48973453498,
"ticketNumber": "TU2DL18461043152218318474"
}
</code>
registrationNumber- registračné číslo externého systému v module Tickets.ticketNumber- číslo lístka, musí existovať v module Tickets pre platnú udalosť.
JSON návratovej správy
<code>
{
"ticket": {
"ticketNumber": "TU2DL18461043152218318474",
"eventName": "Test udalost 2",
"ticketTypeName": "Detský lístok",
"price": 1,
"freePrice": null,
"active": false,
"used": false,
"canceled": false,
"externalSystemName": null,
"pluCode": null,
"pluName": null
},
"returnMessage": {
"message": "The event 'Test udalost 2 (TU2)' expired.",
"code": 9
}
}
</code>
<a name="metoda-use-ticket"></a>
Metóda "useTicket"
Pri volaní tejto metódy sa taktiež validuje externý systém. Potom sa preverí existencia lístka a preverí sa aj platnosť udalosti pre ktorú je lístok určený. Zároveň sa preverí, či je lístok vydaný a či náhodou nie je stornovaný.
http://server:port/Tickets/json/ExternalSystem/useTicket
Požiadavka
<code> POST http://server:port/Tickets/json/ExternalSystem/useTicket </code>
JSON požiadavky
<code>
{
"registrationNumber": 48973453498,
"ticketNumber": "TU2DL18461043152218318474"
}
</code>
registrationNumber- registračné číslo externého systému v module Tickets.ticketNumber- číslo lístka, musí existovať v module Tickets pre platnú udalosť.
JSON návratovej správy
<code>
{
"ticket": {
"ticketNumber": "TU2DL18461043152218318474",
"eventName": "Test udalost 2",
"ticketTypeName": "Detský lístok",
"price": null,
"freePrice": null,
"active": true,
"used": true,
"canceled": false,
"externalSystemName": "Blue Gastro S01",
"pluCode": 123,
"pluName": "Detsky listok"
},
"returnMessage": {
"message": "Everything okay.",
"code": 0
}
}
</code>
<a name="navratove-kody"></a>
Návratové kódy
Jednotlivé metódy v časti returnMessage pri návratovej správe vracajú kód aj správu ako daná požiadavka
dopadla. V nasledujúcej tabuľke je zoznam všetkých návratových kódov, ktoré môžu nastať.
</tbody>
| Kód | Popis |
| 0 | Všetko je v poriadku. Požiadavka bola spracovaná. |
| 1 | Neznámy stav. Predpoklad je, že ide o chybu. |
| 2 | Externý systém neexistuje. |
| 3 | Externý systém existuje, ale nie je povolený. |
| 4 | Lístok neexistuje. |
| 5 | Nie je definovaná udalosť pre lístok. |
| 6 | Typ lístka nie je definovaný. |
| 7 | Typ lístka nie je povolený. |
| 8 | Udalosť nie je povolená. |
| 9 | Udalosť je po dátume a čase platnosti. |
| 10 | Udalosť ešte nezačala, nie je naštartovaná. |
| 11 | Predaj lístka nie je povolený. |
| 12 | Lístok nie je aktívovaný. |
| 13 | Lístok už je aktivovaný. |
| 14 | Lístok je už použitý. |
| 15 | Lístok bol stornovaný. |
| 16 | Lístok je rezervovaný pre iný systém. |
| 17 | Lístok už je rezervovaný (pokiaľ je požiadavka z rovnakého systému). |
| 18 | Udalosť nie je uzavretá. |
| 19 | Lístok nie je validný. |
| 20 | Udalosť nie je validná. |
</body> </html>