summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-12-14 20:46:02 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-12-14 20:46:02 +0100
commit5fe4174febbf833e0fdbfd5f1500883720c420df (patch)
tree1fdd5cb327f639f5a0548f9aecdb016998a22b13 /templates
parent7e9a2ebfef85a0ac45179e4bb120f69a7bdc2614 (diff)
Add API entry point for journey import
Diffstat (limited to 'templates')
-rw-r--r--templates/account.html.ep27
-rw-r--r--templates/api_documentation.html.ep60
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>
--->