From fade25b71d3bd32a41fa7bfa0b7012f1eeb402b4 Mon Sep 17 00:00:00 2001 From: Oskar Date: Sat, 5 Dec 2020 16:50:35 +0100 Subject: [PATCH] Skip DB search on /data for efficiency on default case --- ftracker/core.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ftracker/core.py b/ftracker/core.py index e6122d8..f6ba3b5 100644 --- a/ftracker/core.py +++ b/ftracker/core.py @@ -125,7 +125,12 @@ def get_data(): start = request.args.get('start', default = None, type = str) end = request.args.get('end' , default = None, type = str) - room = request.args.get('room' , default = ".*", type = str) + room = request.args.get('room' , default = None, type = str) + + # Skip DB query if no parameters given + # (Which is currently every request) + if not (start or end or room): + return json.dumps(db.all(), indent=SPACES), 200 def is_after(val, iso): return (val >= iso if val else True ) if iso else True @@ -137,7 +142,7 @@ def get_data(): r = db.search( (Entry.departure.test(is_after, start)) & (Entry.arrival.test(is_before, end)) & - (Entry.room.search(room)) + (Entry.room.search(room or ".*")) ) return json.dumps(r, indent=SPACES), 200