Refactor getData function and fix SQL query in queries.py

This commit is contained in:
sietse jonker
2024-04-01 16:09:20 +02:00
parent a53ecb1c96
commit 5aa494773e
2 changed files with 10 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
from flask import Flask, request, jsonify
import mysql.connector
from queries import *
import ast
app = Flask(__name__)
@app.route('/getMeasurements')
@@ -49,9 +50,10 @@ def loginDB():
)
return mydb
def getData(node, dataType, MAC, dateStart, dateEnd, type):
def getData(node, dataType, MAC, dateStart, dateEnd):
dataTypeTuple = ast.literal_eval(dataType)
mydb = loginDB()
query = get_query(node, dataType, MAC, dateStart, dateEnd, type)
query = get_query(node, dataTypeTuple, MAC, dateStart, dateEnd)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
result = cursor.fetchall() # Fetch the results

View File

@@ -2,11 +2,15 @@ def get_query(node, dataType, MAC, questionID, replies, dateStart, dateEnd):
if dateStart and dateEnd and node and dataType:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}' AND NodeID = {node} AND Type IN {dataType} OR;'''
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}' AND NodeID = {node} AND Type IN ('{dataType}');'''
elif dateStart and dateEnd and node:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}' AND NodeID = {node};'''
elif dateStart and dateEnd:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}';'''
elif node and dataType:
query = f"SELECT * FROM Measurement WHERE NodeID = {node} AND Type = '{dataType}'"
elif node:
@@ -21,10 +25,7 @@ def get_query(node, dataType, MAC, questionID, replies, dateStart, dateEnd):
query = f"SELECT * FROM Question"
elif replies:
query = f"SELECT * FROM Reply"
elif dateStart and dateEnd and node:
query = f'''SELECT *
FROM Measurement
WHERE TimeStamp BETWEEN '{dateStart}' AND '{dateEnd}';'''
else:
query = "SELECT * FROM `Measurement`"
return query