summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Travelynx.pm5
-rwxr-xr-xlib/Travelynx/Controller/Api.pm9
-rw-r--r--templates/api_documentation.html.ep12
3 files changed, 21 insertions, 5 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm
index f1ae8dc..7acb2c2 100755
--- a/lib/Travelynx.pm
+++ b/lib/Travelynx.pm
@@ -737,6 +737,11 @@ sub startup {
my $tx = $db->begin;
if ( defined $train ) {
+
+ if ( not $train->arrival ) {
+ die("Train has no arrival timestamp\n");
+ }
+
$has_arrived = $train->arrival->epoch < $now->epoch ? 1 : 0;
my $json = JSON->new;
$db->update(
diff --git a/lib/Travelynx/Controller/Api.pm b/lib/Travelynx/Controller/Api.pm
index f95caa3..427fa2e 100755
--- a/lib/Travelynx/Controller/Api.pm
+++ b/lib/Travelynx/Controller/Api.pm
@@ -281,7 +281,8 @@ sub travel_v1 {
$self->render(
json => {
success => \0,
- error => 'Fehler am Abfahrtsbahnhof: '
+ error =>
+ 'Error requesting departures from fromStation: '
. $status->{errstr},
status => $self->get_user_status_json_v1($uid)
}
@@ -297,7 +298,7 @@ sub travel_v1 {
json => {
success => \0,
deprecated => \0,
- error => 'Zug nicht gefunden',
+ error => 'Train not found at fromStation',
status => $self->get_user_status_json_v1($uid)
}
);
@@ -320,7 +321,7 @@ sub travel_v1 {
json => {
success => \0,
deprecated => \0,
- error => $error,
+ error => 'Checkin/Checkout error: ' . $error,
status => $self->get_user_status_json_v1($uid)
}
);
@@ -362,7 +363,7 @@ sub travel_v1 {
json => {
success => \0,
deprecated => \0,
- error => $error,
+ error => 'Checkout error: ' . $error,
status => $self->get_user_status_json_v1($uid)
}
);
diff --git a/templates/api_documentation.html.ep b/templates/api_documentation.html.ep
index a2e5a6c..e5d026f 100644
--- a/templates/api_documentation.html.ep
+++ b/templates/api_documentation.html.ep
@@ -73,6 +73,10 @@
<p>
Checkin per API. Sobald eine Zielstation bekannt ist, erfolgt der
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
bist, wirst du zunächst am gewählten Startbahnhof aus diesem ausgecheckt.
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
Checkin automatisch rückgängig gemacht.
</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;">
curl -X POST -H "Content-Type: application/json" -d '{"token":"<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>"}' <%= $api_root %>/travel
</p>
@@ -102,7 +112,7 @@
{<br/>
"token" : "<%= $uid %>-<%= $token->{travel} // 'TOKEN' %>",<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/>
"comment" : "Beliebiger Text" (optional, überschreibt vorherigen Kommentar)<br/>
}