Account

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

API

% my $token = get_api_token();

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.

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

Status

% my $api_root = $self->url_for('/api/v0')->to_abs->scheme('https');

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" }

Export

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

Account löschen

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.

%= form_for 'delete' => begin %= csrf_field %= end
% }