diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-12-14 20:46:02 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-12-14 20:46:02 +0100 |
commit | 5fe4174febbf833e0fdbfd5f1500883720c420df (patch) | |
tree | 1fdd5cb327f639f5a0548f9aecdb016998a22b13 /templates | |
parent | 7e9a2ebfef85a0ac45179e4bb120f69a7bdc2614 (diff) |
Add API entry point for journey import
Diffstat (limited to 'templates')
-rw-r--r-- | templates/account.html.ep | 27 | ||||
-rw-r--r-- | templates/api_documentation.html.ep | 60 |
2 files changed, 80 insertions, 7 deletions
diff --git a/templates/account.html.ep b/templates/account.html.ep index b3ec52a..a9f1bb0 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -169,7 +169,7 @@ </button> %= end </td> - </tr> + </tr>--> <tr> <th scope="row">Travel</th> <td> @@ -192,7 +192,30 @@ </button> %= end </td> - </tr> --> + </tr> + <tr> + <th scope="row">Import</th> + <td> + % if ($token->{import}) { + %= $acc->{id} . '-' . $token->{import} + % } + % else { + — + % } + </td> + <td> + %= form_for 'set_token' => begin + %= csrf_field + %= hidden_field 'token' => 'import' + <button class="btn waves-effect waves-light" type="submit" name="action" value="generate"> + Generieren + </button> + <button class="btn waves-effect waves-light red" type="submit" name="action" value="delete"> + Löschen + </button> + %= end + </td> + </tr> </table> </div> </div> diff --git a/templates/api_documentation.html.ep b/templates/api_documentation.html.ep index dd59be6..de0231d 100644 --- a/templates/api_documentation.html.ep +++ b/templates/api_documentation.html.ep @@ -41,7 +41,7 @@ "scheduledTime": 1556083680,<br/> "realTime": 1556083680,<br/> },<br/> - "fromStation" : { (zugehöriger Checkout. Wenn noch nicht eingetragen, sind alle Felder null)<br/> + "toStation" : { (zugehöriger Checkout. Wenn noch nicht eingetragen, sind alle Felder null)<br/> "name" : "Essen Stadtwald",<br/> "ds100" : "EESA",<br/> "uic" : 8001896,<br/> @@ -72,14 +72,64 @@ Coming soon. </p> </div> -</div> +</div>--> -<h3>Travel</h3> +<h3>Import</h3> <div class="row"> <div class="col s12"> <p> - Ein- und Auschecken per API. Coming soon. + Manueller Import vergangener Zugfahrten (eine Fahrt pro API-Aufruf). + </p> + <p style="font-family: Monospace;"> + curl -X POST -H "Content-Type: application/json" -d '{"token":"<%= $uid %>-<%= $token->{status} // 'TOKEN' %>"}' <%= $api_root %>/import + </p> + <p>Payload (alle nicht als optional markierten Felder sind Pflicht):</p> + <p style="font-family: Monospace;"> + {<br/> + "token" : "<%= $token->{import} // 'TOKEN' %>",<br/> + "dryRun" : True/False, (optional: wenn True, wird die Eingabe validiert, aber keine Zugfahrt angelegt)<br/> + "cancelled" : True/False, (Zugausfall?)<br/> + "train" : {<br/> + "type" : "S", (Zugtyp, z.B. ICE, RE, S)<br/> + "line" : "6", (Linie als String, bei Zügen ohne Linie wie IC/ICE u.ä. null)<br/> + "no" : "30634", (Zugnummer als String)<br/> + },<br/> + "fromStation" : { (Start / Checkin)<br/> + "name" : "Essen Hbf", (Name oder DS100)<br/> + "scheduledTime": 1556083680, (UNIX-Timestamp)<br/> + "realTime": 1556083680, (UNIX-Timestamp, optional, default == scheduledTime)<br/> + },<br/> + "toStation" : { (Ziel / Checkout)<br/> + "name" : "Essen Stadtwald", (Name oder DS100)<br/> + "scheduledTime": 1556083980, (UNIX-Timestamp)<br/> + "realTime": 1556083980, (UNIX-Timestamp, optional, default == scheduledTime)<br/> + },<br/> + "route" : [ (optionale Liste mit Unterwegshalten als Name oder DS100, darf keine Stationen vor Checkin oder nach Checkout beinhalten)<br/> + "Essen Hbf",<br/> + "Essen Süd",<br/> + "Essen Stadtwald"<br/> + ],<br/> + "comment" : "Beliebiger Text" (optionaler Freitext-Kommentar)<br/> + } + </p> + <p> + Antwort bei Erfolg (der Inhalt von "result" ist von dryRun unabhängig): + </p> + <p style="font-family: Monospace;"> + {<br/> + "success" : True,<br/> + "id" : 1234, (ID der eingetragenen Zugfahrt)<br/> + "result" : { ... } (Eingetragene Daten, Inhalt ist variabel)<br/> + } + </p> + <p> + Antwort bei Fehler: + </p> + <p style="font-family: Monospace;"> + {<br/> + "success" : False,<br/> + "error" : "Begründung"<br/> + } </p> </div> </div> ---> |