diff --git a/requirements.txt b/requirements.txt index 17f4e98..3bf50d1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ simplejson Flask-Limiter pymysql gunicorn +flask-cors diff --git a/velconnect/__init__.py b/velconnect/__init__.py index 240a801..68a04c0 100644 --- a/velconnect/__init__.py +++ b/velconnect/__init__.py @@ -1,4 +1,5 @@ from flask import Flask, jsonify, make_response, request +from flask_cors import CORS from velconnect.auth import limiter from velconnect.logger import logger from time import strftime @@ -7,11 +8,13 @@ import traceback def create_app(): app = Flask( - __name__, - instance_relative_config=False, + __name__, + instance_relative_config=False, ) app.config.from_pyfile('config.py') + cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) + limiter.init_app(app) from .routes import api diff --git a/velconnect/routes/api.py b/velconnect/routes/api.py index a55d512..6ed0b32 100644 --- a/velconnect/routes/api.py +++ b/velconnect/routes/api.py @@ -3,6 +3,7 @@ from velconnect.auth import require_api_key from velconnect.db import connectToDB from velconnect.logger import logger from flask import Blueprint, request, jsonify, render_template, url_for +from flask_cors import CORS import time import simplejson as json from random import random @@ -16,6 +17,7 @@ def index(): @bp.route('/api_spec.json', methods=['GET']) +@cross_origin() @require_api_key(0) def api_spec(): response = send_from_directory('static', 'api_spec.json') @@ -146,6 +148,44 @@ def set_headset_details_db(hw_id, data): return response +@bp.route('/set_headset_details//json', methods=['POST']) +@require_api_key(10) +def set_headset_details_json(hw_id): + data = request.json + logger.error(data) + conn, curr = connectToDB() + query = """ + UPDATE `Headset` + SET `user_details` = %(json)s + WHERE `hw_id` = %(hw_id)s; + """ + curr.execute(query, {'hw_id': hw_id, 'json': data}) + conn.commit() + curr.close() + + return jsonify({'success': True}) + + + +@bp.route('/set_room_details//json', methods=['POST']) +@require_api_key(10) +def set_room_details_json(room_id): + data = request.json + logger.error(data) + conn, curr = connectToDB() + query = """ + UPDATE `Room` + SET `room_details` = %(json)s + WHERE `room_id` = %(room_id)s; + """ + curr.execute(query, {'room_id': room_id, 'json': data}) + conn.commit() + curr.close() + + return jsonify({'success': True}) + + + @bp.route('/set_headset_details//user_name', methods=['POST']) @require_api_key(10) def set_headset_details_user_name(hw_id):