From b245d01f658bca87a2a5fe2421016b03149f3518 Mon Sep 17 00:00:00 2001
From: Birte Kristina Friesel <derf@finalrewind.org>
Date: Sun, 23 Mar 2025 19:40:01 +0100
Subject: [PATCH] dbris: implement geolocation lookup

---
 lib/Travelynx/Controller/Traveling.pm | 42 ++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index bb82cb51..6a91f0e2 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;
-- 
GitLab