From 1af70d7448a4ca983b70aa1936631623e1464e60 Mon Sep 17 00:00:00 2001 From: Maximiliano Osorio Date: Tue, 19 Aug 2025 10:44:05 -0400 Subject: [PATCH 1/2] fix: geometry query filtering in campaign repository - Add campaign ID filter to campaign geometry query - Add station ID filter to station geometry query - Fix json.dump to json.dumps for string conversion --- app/db/repositories/campaign_repository.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/db/repositories/campaign_repository.py b/app/db/repositories/campaign_repository.py index a9479e5..62b887d 100644 --- a/app/db/repositories/campaign_repository.py +++ b/app/db/repositories/campaign_repository.py @@ -47,13 +47,13 @@ def get_campaign(self, id: int) -> Campaign | None: campaign : Campaign = result[0] if campaign: - campaign.geometry = self.db.scalar(select(ST_AsGeoJSON(Campaign.geometry))) + campaign.geometry = self.db.scalar(select(ST_AsGeoJSON(Campaign.geometry)).filter(Campaign.campaignid == id)) if campaign.geometry: - print(f"Campaign geometry: {json.dump(campaign.geometry)}") + print(f"Campaign geometry: {json.dumps(campaign.geometry)}") for station in campaign.stations: if station.geometry: # Convert each station's geometry to string - station_geometry_stmt = select(ST_AsGeoJSON(Station.geometry)) + station_geometry_stmt = select(ST_AsGeoJSON(Station.geometry)).filter(Station.stationid == station.stationid) station.geometry = self.db.scalar(station_geometry_stmt) return campaign From 9ce92615b3929379ed59e8050386d194cd665014 Mon Sep 17 00:00:00 2001 From: Maximiliano Osorio Date: Tue, 19 Aug 2025 10:44:35 -0400 Subject: [PATCH 2/2] remove debug --- app/db/repositories/campaign_repository.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/db/repositories/campaign_repository.py b/app/db/repositories/campaign_repository.py index 62b887d..4bcc8de 100644 --- a/app/db/repositories/campaign_repository.py +++ b/app/db/repositories/campaign_repository.py @@ -48,8 +48,6 @@ def get_campaign(self, id: int) -> Campaign | None: if campaign: campaign.geometry = self.db.scalar(select(ST_AsGeoJSON(Campaign.geometry)).filter(Campaign.campaignid == id)) - if campaign.geometry: - print(f"Campaign geometry: {json.dumps(campaign.geometry)}") for station in campaign.stations: if station.geometry: # Convert each station's geometry to string