Files
J1B3-Sensor-boxes/server/Flask/main.py
2024-04-01 16:13:38 +02:00

87 lines
2.7 KiB
Python

from flask import Flask, request, jsonify
import mysql.connector
from queries import *
app = Flask(__name__)
@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)
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():
node_id = request.args.get('node', None)
new_name = request.args.get('name', None)
new_location = request.args.get('location', None)
return updateData(node_id, new_name, new_location)
@app.route('/getNodeInfo')
def getNodeInfoIndex():
macAdress = request.args.get('macAdress', None)
return getNodeInfo(macAdress)
@app.route('/getQuestionData')
def getQuestionDataIndex():
return getQuestionData()
def updateData(node, name, location):
mydb = loginDB()
query = update_query(node, name, location, False, False)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
mydb.commit()
result = cursor.fetchall() # Fetch the results
cursor.close()
mydb.close()
return result
def loginDB():
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="Dingleberries69!",
database="NodeData"
)
return mydb
def getData(node, dataTypes, MAC, dateStart, dateEnd):
mydb = loginDB()
query = get_query(node, dataTypes, MAC, False, False, dateStart, dateEnd)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
result = cursor.fetchall() # Fetch the results
cursor.close()
mydb.close()
return result
def getNodeInfo(macAdress):
mydb = loginDB()
query = get_query(False, False, macAdress, False, False, False, False)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
result = cursor.fetchall() # Fetch the results
cursor.close()
mydb.close()
return result
def getQuestionData(questionID, replies):
mydb = loginDB()
query = get_query(False, False, False, questionID, replies)
cursor = mydb.cursor(dictionary=True) # Enable dictionary output
cursor.execute(query)
result = cursor.fetchall() # Fetch the results
cursor.close()
mydb.close()
return result
if __name__ == '__main__':
app.run(debug=True, host='localhost')