more travel API documentation

This commit is contained in:
Daniel Friesel 2019-12-20 18:33:59 +01:00
parent 11a2e94a04
commit e7f278574f
3 changed files with 21 additions and 5 deletions

View file

@ -737,6 +737,11 @@ sub startup {
my $tx = $db->begin; my $tx = $db->begin;
if ( defined $train ) { if ( defined $train ) {
if ( not $train->arrival ) {
die("Train has no arrival timestamp\n");
}
$has_arrived = $train->arrival->epoch < $now->epoch ? 1 : 0; $has_arrived = $train->arrival->epoch < $now->epoch ? 1 : 0;
my $json = JSON->new; my $json = JSON->new;
$db->update( $db->update(

View file

@ -281,7 +281,8 @@ sub travel_v1 {
$self->render( $self->render(
json => { json => {
success => \0, success => \0,
error => 'Fehler am Abfahrtsbahnhof: ' error =>
'Error requesting departures from fromStation: '
. $status->{errstr}, . $status->{errstr},
status => $self->get_user_status_json_v1($uid) status => $self->get_user_status_json_v1($uid)
} }
@ -297,7 +298,7 @@ sub travel_v1 {
json => { json => {
success => \0, success => \0,
deprecated => \0, deprecated => \0,
error => 'Zug nicht gefunden', error => 'Train not found at fromStation',
status => $self->get_user_status_json_v1($uid) status => $self->get_user_status_json_v1($uid)
} }
); );
@ -320,7 +321,7 @@ sub travel_v1 {
json => { json => {
success => \0, success => \0,
deprecated => \0, deprecated => \0,
error => $error, error => 'Checkin/Checkout error: ' . $error,
status => $self->get_user_status_json_v1($uid) status => $self->get_user_status_json_v1($uid)
} }
); );
@ -362,7 +363,7 @@ sub travel_v1 {
json => { json => {
success => \0, success => \0,
deprecated => \0, deprecated => \0,
error => $error, error => 'Checkout error: ' . $error,
status => $self->get_user_status_json_v1($uid) status => $self->get_user_status_json_v1($uid)
} }
); );

View file

@ -73,6 +73,10 @@
<p> <p>
Checkin per API. Sobald eine Zielstation bekannt ist, erfolgt der Checkin per API. Sobald eine Zielstation bekannt ist, erfolgt der
Checkout wie beim Webinterface automatisch zehn Minuten nach Ankunft. Checkout wie beim Webinterface automatisch zehn Minuten nach Ankunft.
Bitte beachten: Es wird nicht überprüft, ob die angegebene Zielstation
in der vorgesehenen Route des Zugs vorkommt oder nicht.
</p>
<p>
Falls du zum Checkinzeitpunkt bereits in einen anderen Zug eingecheckt Falls du zum Checkinzeitpunkt bereits in einen anderen Zug eingecheckt
bist, wirst du zunächst am gewählten Startbahnhof aus diesem ausgecheckt. bist, wirst du zunächst am gewählten Startbahnhof aus diesem ausgecheckt.
Der Checkout erfolgt unabhängig davon, ob der vorherige Zug an dieser Der Checkout erfolgt unabhängig davon, ob der vorherige Zug an dieser
@ -80,6 +84,12 @@
innerhalb von 48 Stunden kein Zielbahnhof nachgetragen wird, wird der innerhalb von 48 Stunden kein Zielbahnhof nachgetragen wird, wird der
Checkin automatisch rückgängig gemacht. Checkin automatisch rückgängig gemacht.
</p> </p>
<p>
Das Verhalten des Checkout-Endpunkts hängt vom Zeitpunkt ab. Wenn der
Zug den angegebenen Zielbahnhof bereits erreicht hat, wird dort
ausgecheckt. Andernfalls wird das Reiseziel aktualisiert und etwa zehn
Minuten nach Ankunft automatisch ausgecheckt.
</p>
<p style="font-family: Monospace;"> <p style="font-family: Monospace;">
curl -X POST -H "Content-Type: application/json" -d '{"token":"<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>"}' <%= $api_root %>/travel curl -X POST -H "Content-Type: application/json" -d '{"token":"<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>"}' <%= $api_root %>/travel
</p> </p>
@ -102,7 +112,7 @@
{<br/> {<br/>
"token" : "<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>",<br/> "token" : "<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>",<br/>
"action" : "checkout",<br/> "action" : "checkout",<br/>
"force" : true/false, (wenn true: Checkout jetzt durchführen und auftretende Fehler ignorieren. Kann zu Logeinträgen ohne Ankunftsdaten führen.)<br/> "force" : true/false, (wenn true: Checkout jetzt durchführen und auftretende Fehler ignorieren. Kann zu Logeinträgen ohne Ankunftszeit führen.)<br/>
"toStation" : "Berlin Hbf", (DS100 oder EVA-Nummer sind ebenfalls möglich)<br/> "toStation" : "Berlin Hbf", (DS100 oder EVA-Nummer sind ebenfalls möglich)<br/>
"comment" : "Beliebiger Text" (optional, überschreibt vorherigen Kommentar)<br/> "comment" : "Beliebiger Text" (optional, überschreibt vorherigen Kommentar)<br/>
} }