From: Philipp Spitzer Date: Mon, 11 Jun 2018 21:12:08 +0000 (+0200) Subject: Add /api//sensor/. X-Git-Url: https://git.toastfreeware.priv.at/chrisu/seepark.git/commitdiff_plain/8285517e77dba3e02683a0a7b2a09e08f18be79c Add /api//sensor/. --- diff --git a/web/seepark_web.py b/web/seepark_web.py index b9a3bb1..76a5b15 100644 --- a/web/seepark_web.py +++ b/web/seepark_web.py @@ -1,11 +1,22 @@ -from flask import Flask, render_template, jsonify from random import uniform +import datetime import time import configparser import os +from flask import Flask, render_template, jsonify +import flask.json from sqlalchemy import create_engine -app = Flask(__name__) + +class JSONEncoder(flask.json.JSONEncoder): + def default(self, object): + if isinstance(object, datetime.datetime): + return object.isoformat() + return super().default(object) + + +app = Flask(__name__) +app.json_encoder = JSONEncoder config = configparser.ConfigParser() config.read(os.environ['SEEPARKINI']) apikey = config.get('openweathermap', 'apikey') @@ -20,7 +31,7 @@ def open_engine(config): return engine -@app.route('/api//sensors') +@app.route('/api//sensors/') def sensors(version): """List all sensors found in the database""" engine = open_engine(config) @@ -30,6 +41,16 @@ def sensors(version): return jsonify(result) +@app.route('/api//sensor/') +def sensor(version, sensor_id): + """Return all sensor data""" + engine = open_engine(config) + with engine.connect() as conn: + cursor = conn.execute('select * from sensors where sensor_id=%s order by id', sensor_id) + result = [dict(row) for row in cursor] + return jsonify(result) + + @app.route('/data/', defaults={'timespan': 1}) @app.route("/data/", methods=['GET']) def data(timespan):