% if (my $invalid = stash('invalid')) {
% if ($invalid eq 'csrf') { Ungültiger CSRF-Token

Sind Cookies aktiviert? Ansonsten könnte es sich um einen Fall von CSRF handeln.

% } % elsif ($invalid eq 'password') { Ungültiges Passwort

Aus Sicherheitsgründen kann der Account nur nach Passworteingabe gelöscht werden.

% } % else { Unbekannter Fehler

„<%= $invalid %>“

% }
% }

Account

% my $acc = current_user();
Name <%= $acc->{name} %>
Mail <%= $acc->{email} %>
Registriert am <%= $acc->{registered_at}->strftime('%d.%m.%Y %H:%M') %>
%= form_for 'logout' => begin %= csrf_field %= end
% my $token = get_api_token();

API

Die folgenden API-Token erlauben den passwortlosen automatisierten Zugriff auf API-Endpunkte. Bitte umsichtig behandeln – sobald ein Token gesetzt ist, können damit ohne Logindaten alle zugehörigen API-Aktionen ausgeführt werden.

Status % if ($token->{status}) { %= $acc->{id} . '-' . $token->{status} % } % else { — % } %= form_for 'set_token' => begin %= csrf_field %= hidden_field 'token' => 'status' %= end
History % if ($token->{history}) { %= $acc->{id} . '-' . $token->{history} % } % else { — % } %= form_for 'set_token' => begin %= csrf_field %= hidden_field 'token' => 'history' %= end
Travel % if ($token->{action}) { %= $acc->{id} . '-' . $token->{action} % } % else { — % } %= form_for 'set_token' => begin %= csrf_field %= hidden_field 'token' => 'action' %= end
% my $api_root = $self->url_for('/api/v0')->to_abs->scheme('https');

Status

Das Format der API v0 kann sich noch ändern, ab v1 ist es stabil.

% if ($token->{status}) { curl <%= $api_root %>/status/<%= $acc->{id} %>-<%= $token->{status} // 'TOKEN' %> % } % else { curl <%= $api_root %>/status/TOKEN % }

{
"checked_in" : true / false,
"station_ds100" : "EE", (DS100-Kürzel der letzten Station)
"station_name" : "Essen Hbf", (Name der letzten Station)
"train_type" : "ICE", (aktueller / letzter Zugtyp)
"train_line" : "", (Linie, ggf. null)
"train_no" : "1234", (Zugnummer)
"action_ts" : 1234567, (UNIX-Timestamp des letzten Checkin/Checkout)
"sched_ts" : 1234567, (UNIX-Timestamp der zugehörigen Ankunft/Abfahrt gemäß Fahrplan. Ggf. 0)
"real_ts" : 1234567, (UNIX-Timestamp der zugehörigen Ankunft/Abfahrt laut Echtzeitdaten. Ggf. 0)
}

Im Fehlerfall: { "error" : "Begründung" }

History

Coming soon.

Travel

Ein- und Auschecken per API. Coming soon.

Export

% if (not $acc->{deletion_requested}) {

Löschen

Der Löschauftrag wird vorgemerkt und erst nach drei Tagen umgesetzt, bis dahin kann er jederzeit zurückgenommen werden. Nach Ablauf der drei Tage wird der Account mit allen zugehörigen Reisedaten ohne weitere Rückfragen entfernt.

%= form_for 'delete' => begin
lock %= password_field 'password', id => 'password', class => 'validate', required => undef, autocomplete => 'current-password'
%= csrf_field
%= end
% }