diff --git a/spaceapi/sensors.py b/spaceapi/sensors.py --- a/spaceapi/sensors.py +++ b/spaceapi/sensors.py @@ -8,7 +8,7 @@ import jsonschema from flask import Blueprint, jsonify, request, abort, current_app from .auth import httpauth -from .active import save_last_state +#from .active import save_last_state from .utils import first, fuzzy_list_find, ActiveStatus sensors_views = Blueprint('sensors', __name__) diff --git a/spaceapi/state.py b/spaceapi/state.py --- a/spaceapi/state.py +++ b/spaceapi/state.py @@ -4,7 +4,7 @@ from time import time from flask import Blueprint, jsonify, request, current_app, abort -import twitter +#import twitter from .utils import ActiveStatus from .auth import httpauth @@ -14,38 +14,41 @@ state_views = Blueprint('state', __name_ ALLOWED_STATE_KEYS = frozenset(('open', 'lastchange', 'trigger_person', 'message')) -twitter_api = twitter.Api() - +#twitter_api = twitter.Api() -@state_views.route('/set/', methods=['POST']) -@httpauth.login_required -def set_state(key): - +def set_new_state(key, value): active = ActiveStatus() - value = json.loads(request.data.decode('utf-8'))['value'] - current_app.logger.info(value) - current_app.logger.info(type(value)) - if key in ALLOWED_STATE_KEYS: active['state'][key] = value if key == 'open': active['state']['lastchange'] = int(time()) - if 'twitter_consumer_key' in current_app.config: - twitter_api.SetCredentials( - consumer_key=current_app.config['twitter_consumer_key'], - consumer_secret=current_app.config['twitter_consumer_secret'], - access_token_key=current_app.config['twitter_access_token_key'], - access_token_secret=current_app.config['twitter_access_token_secret'] - ) - - if value: - twitter_api.PostUpdate('The space is now open!') - else: - twitter_api.PostUpdate('The space is now closed!') + # if 'twitter_consumer_key' in current_app.config: + # twitter_api.SetCredentials( + # consumer_key=current_app.config['twitter_consumer_key'], + # consumer_secret=current_app.config['twitter_consumer_secret'], + # access_token_key=current_app.config['twitter_access_token_key'], + # access_token_secret=current_app.config['twitter_access_token_secret'] + # ) + # + # if value: + # twitter_api.PostUpdate('The space is now open!') + # else: + # twitter_api.PostUpdate('The space is now closed!') active.save_last_state() return jsonify(active) else: return abort(400) + + +@state_views.route('/set/', methods=['POST']) +@httpauth.login_required +def set_state(key): + + value = json.loads(request.data.decode('utf-8'))['value'] + current_app.logger.info(value) + current_app.logger.info(type(value)) + + return set_new_state(key, value) diff --git a/spaceapi/templates/open.html b/spaceapi/templates/open.html new file mode 100644 --- /dev/null +++ b/spaceapi/templates/open.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} + +{% block content %} +
+
+ + +
+
+{% endblock %} diff --git a/spaceapi/views.py b/spaceapi/views.py --- a/spaceapi/views.py +++ b/spaceapi/views.py @@ -1,7 +1,8 @@ -from flask import Blueprint, jsonify, render_template, abort +from flask import Blueprint, jsonify, render_template, abort, request, redirect, url_for from .utils import request_wants_json, ActiveStatus from .auth import httpauth +from .state import set_new_state root_views = Blueprint('root', __name__) @@ -24,3 +25,15 @@ def reload(): active = ActiveStatus() active.reload() return jsonify(active) + + +@root_views.route('/open', methods=('GET', 'POST')) +@httpauth.login_required +def open(): + if request.method == 'POST': + if 'close' in request.form: + return set_new_state('open', False) + elif 'open' in request.form: + return set_new_state('open', True) + + return render_template('open.html')