mirror of
https://github.com/supleed2/ELEC60013-ES-CW1.git
synced 2024-12-22 21:45:48 +00:00
Added endpoints for retrieving device data
This commit is contained in:
parent
e0f2f18bd2
commit
2fa0e252f8
21
api/data.py
21
api/data.py
|
@ -1,7 +1,9 @@
|
||||||
import datetime
|
import time
|
||||||
|
import json
|
||||||
from flask import Response, Blueprint, request
|
from flask import Response, Blueprint, request
|
||||||
from firebase_admin import firestore
|
from firebase_admin import firestore
|
||||||
|
|
||||||
|
|
||||||
data = Blueprint('data', __name__)
|
data = Blueprint('data', __name__)
|
||||||
|
|
||||||
@data.route('/readings/save', methods=['POST'])
|
@data.route('/readings/save', methods=['POST'])
|
||||||
|
@ -13,7 +15,7 @@ def uploadReadings():
|
||||||
body = request.json
|
body = request.json
|
||||||
if body is None:
|
if body is None:
|
||||||
return Response("{'error':'Invalid request - please provide a body'}", status=400, mimetype='application/json')
|
return Response("{'error':'Invalid request - please provide a body'}", status=400, mimetype='application/json')
|
||||||
body['timestamp'] = datetime.datetime.now()
|
body['timestamp'] = time.time()
|
||||||
|
|
||||||
doc = firestore.client().collection(u'readings').document(deviceId).get()
|
doc = firestore.client().collection(u'readings').document(deviceId).get()
|
||||||
if doc.exists:
|
if doc.exists:
|
||||||
|
@ -26,3 +28,18 @@ def uploadReadings():
|
||||||
upload = {'data': data}
|
upload = {'data': data}
|
||||||
firestore.client().collection(u'readings').document(deviceId).set(upload)
|
firestore.client().collection(u'readings').document(deviceId).set(upload)
|
||||||
return Response("{'success':'Data saved'}", status=200, mimetype='application/json')
|
return Response("{'success':'Data saved'}", status=200, mimetype='application/json')
|
||||||
|
|
||||||
|
@data.route('/readings/getall', methods=['GET'])
|
||||||
|
def getAllReadings():
|
||||||
|
deviceId = request.headers.get('deviceid')
|
||||||
|
if deviceId is None:
|
||||||
|
return Response("{'error':'Device not specified'}", status=400, mimetype='application/json')
|
||||||
|
|
||||||
|
doc = firestore.client().collection(u'readings').document(deviceId).get()
|
||||||
|
if doc.exists:
|
||||||
|
data = doc.to_dict()['data']
|
||||||
|
else:
|
||||||
|
data = []
|
||||||
|
|
||||||
|
results = {'data': data}
|
||||||
|
return Response(json.dumps(results), status=200, mimetype='application/json')
|
||||||
|
|
Loading…
Reference in a new issue