Skip to content

Commit 48a4487

Browse files
committed
feat: limit location query to 50 measurements
1 parent 520c262 commit 48a4487

2 files changed

Lines changed: 11 additions & 6 deletions

File tree

rest_api/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ def get_locations(
159159
):
160160
"""Fetch locations for a given list of sensors."""
161161
ret = fetch_locations_for_device_list(conn, sensor_list)
162+
print(f"Returning {ret} locations")
162163
return {"locations": ret}
163164

164165

rest_api/src/handlers.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ def fetch_measurements_for_sensor(
161161
return measurements
162162

163163

164+
# TODO: Implement device list
164165
def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
165166
"""Fetch the latest location for each device in the device_list."""
166167
with conn.cursor() as cur:
@@ -174,7 +175,7 @@ def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
174175
ON m.registry_id = r.id
175176
JOIN sensors s
176177
ON m.sensor_id = s.id
177-
ORDER BY m.timestamp DESC
178+
ORDER BY m.timestamp DESC LIMIT 50
178179
"""
179180
cur.execute(
180181
query,
@@ -185,9 +186,9 @@ def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
185186
# Step 2: Group measurement_ids by table name
186187
table_to_ids = defaultdict(list)
187188
for measurement_id, table_name, sensor_name in rows:
188-
print(
189-
f"Sensor name in DB: {sensor_name}, measurement_id: {measurement_id}, table_name: {table_name}"
190-
)
189+
# print(
190+
# f"Sensor name in DB: {sensor_name}, measurement_id: {measurement_id}, table_name: {table_name}"
191+
# )
191192
table_to_ids[table_name].append((measurement_id, sensor_name))
192193

193194
locations = []
@@ -196,7 +197,7 @@ def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
196197
for table_name, info in table_to_ids.items():
197198
measurement_ids, sensor_names = zip(*info)
198199
ids = list(measurement_ids)
199-
print(f"IDs: {ids}")
200+
# print(f"IDs: {ids}")
200201
# Check if latitude and longitude columns exist in the table
201202
cur.execute(
202203
sql.SQL(
@@ -224,7 +225,7 @@ def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
224225

225226
# sensor_name = sensor_names[ids.index(row[0])]
226227
filtered_data["sensor_name"] = sensor_name
227-
print(f"Sensor name: {sensor_name}")
228+
# print(f"Sensor name: {sensor_name}")
228229
if filtered_data:
229230
if (
230231
filtered_data.get("latitude") is not None
@@ -237,6 +238,9 @@ def fetch_locations_for_device_list(conn, device_list: list[str]) -> list:
237238
data=filtered_data,
238239
)
239240
)
241+
print(
242+
f"Added location for sensor {sensor_name}: {filtered_data}"
243+
)
240244
break
241245
except Exception as e:
242246
print(f"Error executing query on table {table_name}: {e}")

0 commit comments

Comments
 (0)