From f60300acffd03e8eea1ecc1f4955d424700783fd Mon Sep 17 00:00:00 2001 From: Christopher Usher Date: Fri, 7 Jun 2019 01:52:58 +0100 Subject: [PATCH] hopefully some progress on the thrimshim --- thrimshim/thrimshim/main.py | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/thrimshim/thrimshim/main.py b/thrimshim/thrimshim/main.py index deaf7f8..4177b76 100644 --- a/thrimshim/thrimshim/main.py +++ b/thrimshim/thrimshim/main.py @@ -5,14 +5,14 @@ import logging import gevent import gevent.backdoor from gevent.pywsgi import WSGIServer -from flask import Flask, url_for, request, abort, Response +import flask from common import database -from stats import stats, after_request +#from stats import stats, after_request -app = Flask('restreamer', static_url_path='/segments') -app.after_request(after_request) +app = flask.Flask('thrimshim') +#app.after_request(after_request) def cors(app): """WSGI middleware that sets CORS headers""" @@ -30,11 +30,31 @@ def cors(app): return app(environ, _start_response) return handle +@app.route('/thrimshim/', methods=['GET', 'POST']) +def thrimshim(key): + if flask.request.method == 'POST': + row = flask.request.json + update_row(row) + else: + + + +def date_handler(obj): + + def get_row(ident): - result = query_database(ident) + conn = flask.g.db_manager.get_conn() + with database.transaction(conn): + result = database.query(conn, 'SELECT * FROM events WHERE id = %s;', ident + row = results[0] + assert row.id == ident + response = row._asdict() + response = {key:(response[key].isoformat() if isinstance(response[key], datetime.datetime) else response[key]) for key in response.keys()} + return json.dump(response) + + +def update_row(ident): - response = json(result) - return result def query_database(ident): @@ -68,8 +88,9 @@ def update_database(ident, to_update): -def main(host='0.0.0.0', port=8005, connect_string='', backdoor_port=False): +def main(host='0.0.0.0', port=8005, connection_string='', backdoor_port=False): + flask.g.db_manager = database.DBManager(dsn=connection_string) server = WSGIServer((host, port), cors(app)) def stop():