travelynx/templates/account.html.ep

191 lines
5 KiB
Text
Raw Normal View History

2019-03-03 21:35:20 +00:00
<h1>Account</h1>
% my $acc = get_user_data();
2019-03-03 21:35:20 +00:00
<div class="row">
2019-03-08 16:59:48 +00:00
<div class="col s12">
<table class="striped">
<tr>
<th scope="row">Name</th>
<td><%= $acc->{name} %></td>
</tr>
<tr>
<th scope="row">Mail</th>
<td><%= $acc->{email} %></td>
</tr>
<tr>
<th scope="row">Registriert am</th>
<td><%= $acc->{registered_at}->strftime('%d.%m.%Y %H:%M') %></td>
</tr>
</table>
</div>
</div>
<div class="row">
<div class="col s1 m1 l3">
</div>
<div class="col s10 m10 l6 center-align">
%= form_for 'logout' => begin
%= csrf_field
<button class="btn waves-effect waves-light" type="submit" name="action" value="logout">
Abmelden
</button>
%= end
</div>
<div class="col s1 m1 l3">
</div>
2019-03-03 21:35:20 +00:00
</div>
2019-03-16 12:56:56 +00:00
<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>
2019-03-03 21:35:20 +00:00
<h1>Export</h1>
<div class="row">
<div class="col s12">
<ul>
2019-03-07 17:36:11 +00:00
<li><a href="/export.json">Rohdaten</a> (Kein API-Ersatz, das Format kann sich jederzeit ändern)</li>
2019-03-03 21:35:20 +00:00
</ul>
</div>
</div>
2019-03-12 20:49:26 +00:00
% if (not $acc->{deletion_requested}) {
<h1>Account löschen</h1>
<div class="row">
<div class="col s12">
<p>
Der Account wird zunächst nur zur Löschung vorgemerkt. Wenn der
Auftrag nach drei Tagen nicht zurückgenommen wird, wird der Account
mit allen zugehörigen Reisedaten ohne weitere Rückfragen entfernt.
</p>
</div>
</div>
<div class="row">
<div class="col s1 m1 l3">
</div>
<div class="col s10 m10 l6 center-align">
%= form_for 'delete' => begin
%= csrf_field
<button class="btn waves-effect waves-light red" type="submit" name="action" value="delete">
Account löschen
</button>
%= end
</div>
<div class="col s1 m1 l3">
</div>
</div>
% }