diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2023-01-07 13:31:14 +0100 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2023-01-07 13:31:14 +0100 | 
| commit | 61b91fe4b266e3c7984d37ccad3e21380372b921 (patch) | |
| tree | 92cdd4fc250d327954e3291525661dd23272cecb /lib/Travelynx/Helper | |
| parent | 628bd319d627e94b0349391c2abce44fb51cab84 (diff) | |
log traewelling sync HTTP status to influxdb1.29.6
Diffstat (limited to 'lib/Travelynx/Helper')
| -rw-r--r-- | lib/Travelynx/Helper/Traewelling.pm | 23 | 
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/Travelynx/Helper/Traewelling.pm b/lib/Travelynx/Helper/Traewelling.pm index 345d642..607b799 100644 --- a/lib/Travelynx/Helper/Traewelling.pm +++ b/lib/Travelynx/Helper/Traewelling.pm @@ -83,7 +83,7 @@ sub get_status_p {  			if ( my $err = $tx->error ) {  				my $err_msg  				  = "v1/user/${username}/statuses: HTTP $err->{code} $err->{message}"; -				$promise->reject($err_msg); +				$promise->reject( { http => $err->{code}, text => $err_msg } );  				return;  			}  			else { @@ -118,6 +118,7 @@ sub get_status_p {  					my ( $train_type, $train_line ) = split( qr{ }, $linename );  					$promise->resolve(  						{ +							http       => $tx->res->code,  							status_id  => $status_id,  							message    => $message,  							checkin    => $checkin_at, @@ -138,7 +139,8 @@ sub get_status_p {  					return;  				}  				else { -					$promise->reject("v1/${username}/statuses: unknown error"); +					$promise->reject( +						{ text => "v1/${username}/statuses: unknown error" } );  					return;  				}  			} @@ -146,7 +148,7 @@ sub get_status_p {  	)->catch(  		sub {  			my ($err) = @_; -			$promise->reject("v1/${username}/statuses: $err"); +			$promise->reject( { text => "v1/${username}/statuses: $err" } );  			return;  		}  	)->wait; @@ -320,7 +322,7 @@ sub logout_p {  	return $promise;  } -sub checkin { +sub checkin_p {  	my ( $self, %opt ) = @_;  	my $header = { @@ -356,10 +358,11 @@ sub checkin {  		$request->{body} = $opt{user_data}{comment};  	} -# https://github.com/Traewelling/traewelling/blob/develop/app/Http/Controllers/API/v1/TransportController.php -> create. trains/checkin ist richtig.  	my $debug_prefix  	  = "v1/trains/checkin('$request->{lineName}' $request->{tripId} $request->{start} -> $request->{destination})"; +	my $promise = Mojo::Promise->new; +  	$self->{user_agent}->request_timeout(20)  	  ->post_p(  		"https://traewelling.de/api/v1/trains/checkin" => $header => json => @@ -389,13 +392,11 @@ sub checkin {  "Konnte $opt{train_type} $opt{train_no} nicht übertragen: $debug_prefix returned $err_msg",  					is_error => 1  				); +				$promise->reject( { http => $err->{code} } );  				return;  			}  			$self->{log}->debug( "... success! " . $tx->res->body ); -			# As of 2020-10-04, traewelling.de checkins do not yet return -			# "statusId". The patch is present on the develop branch and waiting -			# for a merge into master.  			$self->{model}->log(  				uid       => $opt{uid},  				message   => "Eingecheckt in $opt{train_type} $opt{train_no}", @@ -405,9 +406,11 @@ sub checkin {  				uid => $opt{uid},  				ts  => $opt{checkin_ts}  			); +			$promise->resolve( { http => $tx->res->code } );  			# TODO store status_id in in_transit object so that it can be shown  			# on the user status page +			return;  		}  	)->catch(  		sub { @@ -419,8 +422,12 @@ sub checkin {  "Konnte $opt{train_type} $opt{train_no} nicht übertragen: $debug_prefix returned $err",  				is_error => 1  			); +			$promise->reject( { connection => $err } ); +			return;  		}  	)->wait; + +	return $promise;  }  1;  | 
