diff options
| author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-03-23 19:40:01 +0100 | 
|---|---|---|
| committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-03-23 19:40:12 +0100 | 
| commit | b245d01f658bca87a2a5fe2421016b03149f3518 (patch) | |
| tree | 1b82818adc2dee3c05855f2c826a08359e174f94 /lib | |
| parent | 164253d1a96f676be3d96faa70006a71b72322d6 (diff) | |
dbris: implement geolocation lookup
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/Travelynx/Controller/Traveling.pm | 42 | 
1 files changed, 41 insertions, 1 deletions
diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm index bb82cb5..6a91f0e 100755 --- a/lib/Travelynx/Controller/Traveling.pm +++ b/lib/Travelynx/Controller/Traveling.pm @@ -545,7 +545,47 @@ sub geolocation {  	}  	if ($dbris_service) { -		...; +		$self->render_later; + +		Travel::Status::DE::DBRIS->new_p( +			promise    => 'Mojo::Promise', +			user_agent => Mojo::UserAgent->new, +			geoSearch  => { +				latitude  => $lat, +				longitude => $lon +			} +		)->then( +			sub { +				my ($dbris) = @_; +				my @results = map { +					{ +						name     => $_->name, +						eva      => $_->eva, +						distance => 0, +						dbris    => $dbris_service, +					} +				} $dbris->results; +				if ( @results > 10 ) { +					@results = @results[ 0 .. 9 ]; +				} +				$self->render( +					json => { +						candidates => [@results], +					} +				); +			} +		)->catch( +			sub { +				my ($err) = @_; +				$self->render( +					json => { +						candidates => [], +						warning    => $err, +					} +				); +			} +		)->wait; +		return;  	}  	elsif ($hafas_service) {  		$self->render_later;  | 
