summaryrefslogtreecommitdiff
path: root/templates/account.html.ep
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-03-16 13:56:56 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-03-16 13:56:56 +0100
commitd6264b5ca8a0192c02bb3aff676fd8aebe87c29e (patch)
tree2dd10ce0ec04f8bfea11bf312252d4b0d3360e24 /templates/account.html.ep
parent532fadabb45cdf7e70f877eaf2de4d476c7dc1d2 (diff)
Add JSON API
Diffstat (limited to 'templates/account.html.ep')
-rw-r--r--templates/account.html.ep119
1 files changed, 119 insertions, 0 deletions
diff --git a/templates/account.html.ep b/templates/account.html.ep
index 74af719..b23c9af 100644
--- a/templates/account.html.ep
+++ b/templates/account.html.ep
@@ -33,6 +33,125 @@
</div>
</div>
+<h1>API</h1>
+% my $token = get_api_token();
+<div class="row">
+ <div class="col s12">
+ <p>
+ Die folgenden API-Token erlauben den passwortlosen automatisierten Zugriff auf
+ API-Endpunkte. Bitte umsichtig behandeln – sobald ein Token gesetzt
+ ist, können mit Kenntnis von Token und Nutzer-ID alle zugehörigen
+ API-Aktionen ausgeführt werden. Logindaten sind dazu nicht
+ erforderlich.
+ </p>
+ <table class="striped">
+ <tr>
+ <th scope="row">Status</th>
+ <td>
+ % if ($token->{status}) {
+ %= $acc->{id} . '-' . $token->{status}
+ % }
+ % else {
+ —
+ % }
+ </td>
+ <td>
+ %= form_for 'set_token' => begin
+ %= csrf_field
+ %= hidden_field 'token' => 'status'
+ <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>
+ <tr>
+ <th scope="row">History</th>
+ <td>
+ % if ($token->{history}) {
+ %= $acc->{id} . '-' . $token->{history}
+ % }
+ % else {
+ —
+ % }
+ </td>
+ <td>
+ %= form_for 'set_token' => begin
+ %= csrf_field
+ %= hidden_field 'token' => 'history'
+ <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>
+ <tr>
+ <th scope="row">Travel</th>
+ <td>
+ % if ($token->{action}) {
+ %= $acc->{id} . '-' . $token->{action}
+ % }
+ % else {
+ —
+ % }
+ </td>
+ <td>
+ %= form_for 'set_token' => begin
+ %= csrf_field
+ %= hidden_field 'token' => 'action'
+ <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>
+
+<h2>Status</h2>
+% my $api_root = $self->url_for('/api/v0')->to_abs->scheme('https');
+<div class="row">
+ <div class="col s12">
+ <p>
+ Das Format der API v0 kann sich noch ändern, ab v1 ist es stabil.
+ </p>
+ <p style="font-family: Monospace;">
+ % if ($token->{status}) {
+ curl <%= $api_root %>/status/<%= $acc->{id} %>-<%= $token->{status} // 'TOKEN' %>
+ % }
+ % else {
+ curl <%= $api_root %>/status/TOKEN
+ % }
+ </p>
+ <p style="font-family: Monospace;">
+ {<br/>
+ "checked_in" : true / false,<br/>
+ "station_ds100" : "EE", (DS100-Kürzel der letzten Station)<br/>
+ "station_name" : "Essen Hbf", (Name der letzten Station)<br/>
+ "train_type" : "ICE", (aktueller / letzter Zugtyp)<br/>
+ "train_line" : "", (Linie, ggf. null)<br/>
+ "train_no" : "1234", (Zugnummer)<br/>
+ "action_ts" : 1234567, (UNIX-Timestamp des letzten Checkin/Checkout)<br/>
+ "sched_ts" : 1234567, (UNIX-Timestamp der zugehörigen Ankunft/Abfahrt gemäß Fahrplan. Ggf. 0)<br/>
+ "real_ts" : 1234567, (UNIX-Timestamp der zugehörigen Ankunft/Abfahrt laut Echtzeitdaten. Ggf. 0)<br/>
+ }
+ </p>
+ <p>
+ Im Fehlerfall: <span style="font-family: Monospace;">{ "error" : "Begründung" }</span>
+ </p>
+ </div>
+</div>
+
<h1>Export</h1>
<div class="row">