API: Status: group properties, add station UIC/lon/lat
This commit is contained in:
parent
56342f21d2
commit
9c32677365
2 changed files with 55 additions and 18 deletions
49
index.pl
49
index.pl
|
@ -1070,17 +1070,40 @@ get '/api/v0/:action/:token' => sub {
|
||||||
}
|
}
|
||||||
if ( $api_action eq 'status' ) {
|
if ( $api_action eq 'status' ) {
|
||||||
my $status = $self->get_user_status($uid);
|
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(
|
$self->render(
|
||||||
json => {
|
json => {
|
||||||
checked_in => $status->{checked_in} ? \1 : \0,
|
deprecated => \0,
|
||||||
station_ds100 => $status->{station_ds100},
|
checked_in => $status->{checked_in} ? \1 : \0,
|
||||||
station_name => $status->{station_name},
|
station => {
|
||||||
train_type => $status->{train_type},
|
ds100 => $status->{station_ds100},
|
||||||
train_line => $status->{train_line},
|
name => $status->{station_name},
|
||||||
train_no => $status->{train_no},
|
uic => $station_eva,
|
||||||
action_ts => $status->{timestamp}->epoch,
|
longitude => $station_lon,
|
||||||
sched_ts => $status->{sched_ts}->epoch,
|
latitude => $station_lat,
|
||||||
real_ts => $status->{real_ts}->epoch,
|
},
|
||||||
|
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;
|
my $now = DateTime->now( time_zone => 'Europe/Berlin' )->epoch;
|
||||||
|
|
||||||
if ( $self->param('action') eq 'delete' ) {
|
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' );
|
$self->render( 'account', invalid => 'password' );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,9 +148,6 @@
|
||||||
<h3>Status</h3>
|
<h3>Status</h3>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col s12">
|
<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;">
|
<p style="font-family: Monospace;">
|
||||||
% if ($token->{status}) {
|
% if ($token->{status}) {
|
||||||
curl <%= $api_root %>/status/<%= $acc->{id} %>-<%= $token->{status} // 'TOKEN' %>
|
curl <%= $api_root %>/status/<%= $acc->{id} %>-<%= $token->{status} // 'TOKEN' %>
|
||||||
|
@ -159,14 +156,25 @@
|
||||||
curl <%= $api_root %>/status/TOKEN
|
curl <%= $api_root %>/status/TOKEN
|
||||||
% }
|
% }
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
Beispiel / Layout:
|
||||||
|
</p>
|
||||||
<p style="font-family: Monospace;">
|
<p style="font-family: Monospace;">
|
||||||
{<br/>
|
{<br/>
|
||||||
|
"deprecated" : true / false, (falls true: Diese API-Version wird irgendwann abgeschaltet, bitte auf eine neue umsteigen)<br/>
|
||||||
"checked_in" : true / false,<br/>
|
"checked_in" : true / false,<br/>
|
||||||
"station_ds100" : "EE", (DS100-Kürzel der letzten Station)<br/>
|
"station" : {<br/>
|
||||||
"station_name" : "Essen Hbf", (Name der letzten Station)<br/>
|
"name" : "Essen Hbf", (Name der letzten Station)<br/>
|
||||||
"train_type" : "ICE", (aktueller / letzter Zugtyp)<br/>
|
"ds100" : "EE", (DS100-Kürzel)<br/>
|
||||||
"train_line" : "", (Linie, ggf. null)<br/>
|
"uic" : 8000098, (Internationale Bahnhofsnummer)<br/>
|
||||||
"train_no" : "1234", (Zugnummer)<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/>
|
"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/>
|
"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/>
|
"real_ts" : 1234567, (UNIX-Timestamp der zugehörigen Ankunft/Abfahrt laut Echtzeitdaten. Ggf. 0)<br/>
|
||||||
|
|
Loading…
Reference in a new issue