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; |