summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-03-19 17:02:30 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-03-19 17:02:30 +0100
commit9c326773655664e18d5b846ed4136fea9fafacf8 (patch)
tree672ac27f0a6ca471e5fe0fe28d3fc801913180e7
parent56342f21d27295e98327be4b49e54205b7a02e13 (diff)
API: Status: group properties, add station UIC/lon/lat
-rwxr-xr-xindex.pl49
-rw-r--r--templates/account.html.ep24
2 files changed, 55 insertions, 18 deletions
diff --git a/index.pl b/index.pl
index 06318fa..46a6873 100755
--- a/index.pl
+++ b/index.pl
@@ -1070,17 +1070,40 @@ get '/api/v0/:action/:token' => sub {
}
if ( $api_action eq 'status' ) {
my $status = $self->get_user_status($uid);
+
+ my @station_descriptions;
+ my $station_eva = undef;
+ my $station_lon = undef;
+ my $station_lat = undef;
+
+ if ( $status->{station_ds100} ) {
+ @station_descriptions
+ = Travel::Status::DE::IRIS::Stations::get_station(
+ $status->{station_ds100} );
+ }
+ if ( @station_descriptions == 1 ) {
+ ( undef, undef, $station_eva, $station_lon, $station_lat )
+ = @{ $station_descriptions[0] };
+ }
$self->render(
json => {
- checked_in => $status->{checked_in} ? \1 : \0,
- station_ds100 => $status->{station_ds100},
- station_name => $status->{station_name},
- train_type => $status->{train_type},
- train_line => $status->{train_line},
- train_no => $status->{train_no},
- action_ts => $status->{timestamp}->epoch,
- sched_ts => $status->{sched_ts}->epoch,
- real_ts => $status->{real_ts}->epoch,
+ deprecated => \0,
+ checked_in => $status->{checked_in} ? \1 : \0,
+ station => {
+ ds100 => $status->{station_ds100},
+ name => $status->{station_name},
+ uic => $station_eva,
+ longitude => $station_lon,
+ latitude => $station_lat,
+ },
+ train => {
+ type => $status->{train_type},
+ line => $status->{train_line},
+ no => $status->{train_no},
+ },
+ action_ts => $status->{timestamp}->epoch,
+ sched_ts => $status->{sched_ts}->epoch,
+ real_ts => $status->{real_ts}->epoch,
},
);
}
@@ -1483,7 +1506,13 @@ post '/delete' => sub {
my $now = DateTime->now( time_zone => 'Europe/Berlin' )->epoch;
if ( $self->param('action') eq 'delete' ) {
- if (not $self->authenticate($self->current_user->{name}, $self->param('password'))) {
+ if (
+ not $self->authenticate(
+ $self->current_user->{name},
+ $self->param('password')
+ )
+ )
+ {
$self->render( 'account', invalid => 'password' );
return;
}
diff --git a/templates/account.html.ep b/templates/account.html.ep
index 17b5e48..f7cac36 100644
--- a/templates/account.html.ep
+++ b/templates/account.html.ep
@@ -148,9 +148,6 @@
<h3>Status</h3>
<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' %>
@@ -159,14 +156,25 @@
curl <%= $api_root %>/status/TOKEN
% }
</p>
+ <p>
+ Beispiel / Layout:
+ </p>
<p style="font-family: Monospace;">
{<br/>
+ "deprecated" : true / false, (falls true: Diese API-Version wird irgendwann abgeschaltet, bitte auf eine neue umsteigen)<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/>
+ "station" : {<br/>
+ "name" : "Essen Hbf", (Name der letzten Station)<br/>
+ "ds100" : "EE", (DS100-Kürzel)<br/>
+ "uic" : 8000098, (Internationale Bahnhofsnummer)<br/>
+ "longitude" : 7.014793,<br/>
+ "latitude" : 51.451355,<br/>
+ },<br/>
+ "train" : {<br/>
+ "type" : "ICE", (aktueller / letzter Zugtyp)<br/>
+ "line" : null, (Linie als String, nicht immer numerisch, ggf. null)<br/>
+ "no" : "1234", (Zugnummer als String)<br/>
+ },<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/>