summaryrefslogtreecommitdiff
path: root/index.pl
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2018-10-21 15:57:38 +0200
committerDaniel Friesel <derf@finalrewind.org>2018-10-21 15:57:38 +0200
commit8e817e5d60303e5307c3151f2b5a1a0eb62c0acd (patch)
tree260213272307da2cab8cb086e240dc6134fa07d9 /index.pl
parent21135337130482d24a3add77d7fbb672b6881d7d (diff)
Re-add force checkout to frontend
Diffstat (limited to 'index.pl')
-rwxr-xr-xindex.pl79
1 files changed, 39 insertions, 40 deletions
diff --git a/index.pl b/index.pl
index c86fe5b..90fb660 100755
--- a/index.pl
+++ b/index.pl
@@ -299,39 +299,17 @@ helper 'checkout' => sub {
my $user = $self->get_user_status;
my $train_id = $user->{train_id};
- if ( $status->{errstr} and not $force ) {
- return $status->{errstr};
- }
if ( not $user->{checked_in} ) {
return 'You are not checked into any train';
}
- else {
- my ($train)
- = first { $_->train_id eq $train_id } @{ $status->{results} };
- if ( not defined $train ) {
- if ($force) {
- my $success = $self->app->checkout_query->execute(
- $self->get_user_id,
- $self->get_station_id(
- ds100 => $status->{station_ds100},
- name => $status->{station_name}
- ),
- DateTime->now( time_zone => 'Europe/Berlin' )->epoch,
- undef, undef, undef, undef, undef,
- undef, undef, undef
- );
- if ( defined $success ) {
- return;
- }
- else {
- return 'INSERT failed';
- }
- }
- else {
- return "Train ${train_id} not found";
- }
- }
- else {
+ if ( $status->{errstr} and not $force ) {
+ return $status->{errstr};
+ }
+
+ my ($train)
+ = first { $_->train_id eq $train_id } @{ $status->{results} };
+ if ( not defined $train ) {
+ if ($force) {
my $success = $self->app->checkout_query->execute(
$self->get_user_id,
$self->get_station_id(
@@ -339,16 +317,8 @@ helper 'checkout' => sub {
name => $status->{station_name}
),
DateTime->now( time_zone => 'Europe/Berlin' )->epoch,
- $train->type,
- $train->line_no,
- $train->train_no,
- $train->train_id,
- $train->sched_arrival ? $train->sched_arrival->epoch : undef,
- $train->arrival ? $train->arrival->epoch : undef,
- join( '|', $train->route ),
- join( '|',
- map { ( $_->[0] ? $_->[0]->epoch : q{} ) . ':' . $_->[1] }
- $train->messages )
+ undef, undef, undef, undef, undef,
+ undef, undef, undef
);
if ( defined $success ) {
return;
@@ -357,6 +327,35 @@ helper 'checkout' => sub {
return 'INSERT failed';
}
}
+ else {
+ return "Train ${train_id} not found";
+ }
+ }
+ else {
+ my $success = $self->app->checkout_query->execute(
+ $self->get_user_id,
+ $self->get_station_id(
+ ds100 => $status->{station_ds100},
+ name => $status->{station_name}
+ ),
+ DateTime->now( time_zone => 'Europe/Berlin' )->epoch,
+ $train->type,
+ $train->line_no,
+ $train->train_no,
+ $train->train_id,
+ $train->sched_arrival ? $train->sched_arrival->epoch : undef,
+ $train->arrival ? $train->arrival->epoch : undef,
+ join( '|', $train->route ),
+ join( '|',
+ map { ( $_->[0] ? $_->[0]->epoch : q{} ) . ':' . $_->[1] }
+ $train->messages )
+ );
+ if ( defined $success ) {
+ return;
+ }
+ else {
+ return 'INSERT failed';
+ }
}
};