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 * from queries import *
app = Flask(__name__) app = Flask(__name__)
@app.route('/') @app.route('/getMeasurements')
def index(): def index():
node = request.args.get('node', default = None) node = request.args.get('node', default = None)
dataType = request.args.get('dataType', default = None) dataType = request.args.get('dataType', default = None)
MAC = request.args.get('MAC', 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') @app.route('/updateData')
def updateDataIndex(): def updateDataIndex():
@@ -47,9 +49,9 @@ def loginDB():
) )
return mydb return mydb
def getData(node, dataType, MAC): def getData(node, dataType, MAC, dateStart, dateEnd):
mydb = loginDB() 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 = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query) cursor.execute(query)
result = cursor.fetchall() # Fetch the results 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: if node and dataType:
query = f"SELECT * FROM Measurement WHERE NodeID = {node} AND Type = '{dataType}'" query = f"SELECT * FROM Measurement WHERE NodeID = {node} AND Type = '{dataType}'"
elif node: elif node:
@@ -13,6 +13,10 @@ def get_query(node, dataType, MAC, questionID, replies):
query = f"SELECT * FROM Question" query = f"SELECT * FROM Question"
elif replies: elif replies:
query = f"SELECT * FROM Reply" query = f"SELECT * FROM Reply"
elif dateStart and dateEnd:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}';'''
else: else:
query = "SELECT * FROM `Measurement`" query = "SELECT * FROM `Measurement`"
return query return query