Skip DB search on /data for efficiency on default case
This commit is contained in:
		@ -125,7 +125,12 @@ def get_data():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	start = request.args.get('start', default = None, type = str)
 | 
						start = request.args.get('start', default = None, type = str)
 | 
				
			||||||
	end   = request.args.get('end'  , 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):
 | 
						def is_after(val, iso):
 | 
				
			||||||
		return (val >= iso if val else True ) if iso else True
 | 
							return (val >= iso if val else True ) if iso else True
 | 
				
			||||||
@ -137,7 +142,7 @@ def get_data():
 | 
				
			|||||||
	r = db.search(
 | 
						r = db.search(
 | 
				
			||||||
		(Entry.departure.test(is_after, start)) &
 | 
							(Entry.departure.test(is_after, start)) &
 | 
				
			||||||
		(Entry.arrival.test(is_before, end)) &
 | 
							(Entry.arrival.test(is_before, end)) &
 | 
				
			||||||
		(Entry.room.search(room))
 | 
							(Entry.room.search(room or ".*"))
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return json.dumps(r, indent=SPACES), 200
 | 
						return json.dumps(r, indent=SPACES), 200
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user