diff options
author | Daniel Friesel <derf@finalrewind.org> | 2022-01-08 10:46:31 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2022-01-08 10:46:31 +0100 |
commit | 71fa4468006c943ff2d20eb52af45301fe41cfad (patch) | |
tree | 7d5a490d25ac5602bb1709b597a500a628c43691 /lib/Travelynx/Command | |
parent | 0ff4ad2f8c20a2416c7a3c1b05db1bd081888756 (diff) |
traewelling sync: push first, then pull
Diffstat (limited to 'lib/Travelynx/Command')
-rw-r--r-- | lib/Travelynx/Command/work.pm | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm index 24621b5..a1fb485 100644 --- a/lib/Travelynx/Command/work.pm +++ b/lib/Travelynx/Command/work.pm @@ -248,6 +248,30 @@ sub run { eval { } } + for my $candidate ( $self->app->traewelling->get_pushable_accounts ) { + $self->app->log->debug( + "Pushing to Traewelling for UID $candidate->{uid}"); + my $trip_id = $candidate->{journey_data}{trip_id}; + if ( not $trip_id ) { + $self->app->log->debug("... trip_id is missing"); + $self->app->traewelling->log( + uid => $candidate->{uid}, + message => +"Fehler bei $candidate->{train_type} $candidate->{train_no}: Keine trip_id vorhanden", + is_error => 1 + ); + next; + } + if ( $candidate->{data}{latest_push_ts} + and $candidate->{data}{latest_push_ts} == $candidate->{checkin_ts} ) + { + $self->app->log->debug("... already handled"); + next; + } + $self->app->traewelling_api->checkin( %{$candidate}, + trip_id => $trip_id ); + } + for my $account_data ( $self->app->traewelling->get_pull_accounts ) { # $account_data->{user_id} is the travelynx uid @@ -272,30 +296,6 @@ sub run { } )->wait; } - - for my $candidate ( $self->app->traewelling->get_pushable_accounts ) { - $self->app->log->debug( - "Pushing to Traewelling for UID $candidate->{uid}"); - my $trip_id = $candidate->{journey_data}{trip_id}; - if ( not $trip_id ) { - $self->app->log->debug("... trip_id is missing"); - $self->app->traewelling->log( - uid => $candidate->{uid}, - message => -"Fehler bei $candidate->{train_type} $candidate->{train_no}: Keine trip_id vorhanden", - is_error => 1 - ); - next; - } - if ( $candidate->{data}{latest_push_ts} - and $candidate->{data}{latest_push_ts} == $candidate->{checkin_ts} ) - { - $self->app->log->debug("... already handled"); - next; - } - $self->app->traewelling_api->checkin( %{$candidate}, - trip_id => $trip_id ); - } } 1; |