Add date range filter to getData function

This commit is contained in:
sietse jonker
2024-03-31 21:08:48 +02:00
parent e94f12e13c
commit 912ffc052b
2 changed files with 11 additions and 5 deletions

View File

@@ -3,12 +3,14 @@ import mysql.connector
from queries import *
app = Flask(__name__)
@app.route('/')
@app.route('/getMeasurements')
def index():
node = request.args.get('node', default = None)
dataType = request.args.get('dataType', default = None)
MAC = request.args.get('MAC', default = None)
return getData(node, dataType, MAC)
dateStart = request.args.get('dateStart', default = None)
dateEnd = request.args.get('dateEnd', default = None)
return getData(node, dataType, MAC, dateStart, dateEnd)
@app.route('/updateData')
def updateDataIndex():
@@ -47,9 +49,9 @@ def loginDB():
)
return mydb
def getData(node, dataType, MAC):
def getData(node, dataType, MAC, dateStart, dateEnd):
mydb = loginDB()
query = get_query(node, dataType, MAC, False, False)
query = get_query(node, dataType, MAC, False, False, dateStart, dateEnd)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
result = cursor.fetchall() # Fetch the results

View File

@@ -1,4 +1,4 @@
def get_query(node, dataType, MAC, questionID, replies):
def get_query(node, dataType, MAC, questionID, replies, dateStart, dateEnd):
if node and dataType:
query = f"SELECT * FROM Measurement WHERE NodeID = {node} AND Type = '{dataType}'"
elif node:
@@ -13,6 +13,10 @@ def get_query(node, dataType, MAC, questionID, replies):
query = f"SELECT * FROM Question"
elif replies:
query = f"SELECT * FROM Reply"
elif dateStart and dateEnd:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}';'''
else:
query = "SELECT * FROM `Measurement`"
return query