From f24c8641eb694fe580e5986d9471154c3b1accec Mon Sep 17 00:00:00 2001 From: Brion Mario Date: Tue, 16 Apr 2019 23:45:20 +0530 Subject: [PATCH 1/3] chore(deps): add flask-cors dependency :heavy_plus_sign: --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ea66db0..c901e77 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ marshmallow==2.14.0 flask_sqlalchemy==2.3.2 flask_marshmallow==0.8.0 marshmallow-sqlalchemy==0.13.2 -PyMySQL==0.9.3 \ No newline at end of file +PyMySQL==0.9.3 +flask-cors \ No newline at end of file From 5a7f057366cfe76e194f20aea92dcdd5c9b4bba9 Mon Sep 17 00:00:00 2001 From: Brion Mario Date: Tue, 16 Apr 2019 23:46:01 +0530 Subject: [PATCH 2/3] chore(core): wrap app with CORS from flask-cors --- app/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/__init__.py b/app/__init__.py index c36d7bf..36b96e4 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,6 +1,7 @@ import os from flask import Flask +from flask_cors import CORS from flask_sqlalchemy import SQLAlchemy from flask_marshmallow import Marshmallow from config import CONFIG @@ -13,6 +14,7 @@ def create_app(config_name): app = Flask(__name__) + CORS(app, support_credentials=True) app.config.from_object(CONFIG[config_name]) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # disabling sqlalchemy event system From f40a07575bf64790f6ab0da56abe0282b2868064 Mon Sep 17 00:00:00 2001 From: Brion Mario Date: Tue, 16 Apr 2019 23:46:32 +0530 Subject: [PATCH 3/3] feat(core): add cors support :sparkles: --- app/routes/v1/application.py | 4 ++++ app/routes/v1/main.py | 2 ++ app/routes/v1/questionnaire.py | 5 ++++- app/routes/v1/session.py | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/routes/v1/application.py b/app/routes/v1/application.py index f1f60dc..8c33bce 100644 --- a/app/routes/v1/application.py +++ b/app/routes/v1/application.py @@ -16,6 +16,7 @@ """ import uuid +from flask_cors import cross_origin from flask import Blueprint, jsonify, request from app.models import Application, ApplicationType, ApplicationSchema, Genre from app import db @@ -27,6 +28,7 @@ @application.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_applications(): """Get a list of all the Applications""" applications = Application.query.all() @@ -35,6 +37,7 @@ def get_applications(): @application.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_application(id): """Get info on an Applications when an id is passed in""" application = Application.query.get(id) @@ -43,6 +46,7 @@ def get_application(id): @application.route('/', methods=['POST']) +@cross_origin(supports_credentials=True) def create_application(): """Create a new Application""" diff --git a/app/routes/v1/main.py b/app/routes/v1/main.py index 75ddba4..ad2edf7 100644 --- a/app/routes/v1/main.py +++ b/app/routes/v1/main.py @@ -1,8 +1,10 @@ from flask import Blueprint, jsonify +from flask_cors import cross_origin main = Blueprint('main', __name__) @main.route('/') +@cross_origin(supports_credentials=True) def index(): return jsonify({"message": "Welcome to CSSI REST API"}) diff --git a/app/routes/v1/questionnaire.py b/app/routes/v1/questionnaire.py index 4acb097..1370997 100644 --- a/app/routes/v1/questionnaire.py +++ b/app/routes/v1/questionnaire.py @@ -15,8 +15,8 @@ """ -import uuid from flask import Blueprint, jsonify, request +from flask_cors import cross_origin from app.models import Questionnaire, ApplicationType, QuestionnaireSchema, Genre from app import db @@ -27,6 +27,7 @@ @questionnaire.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_questionnaire_list(): """Get a list of all the Questionnaire""" questionnaires = Questionnaire.query.all() @@ -35,6 +36,7 @@ def get_questionnaire_list(): @questionnaire.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_questionnaire(id): """Get questionnaire when an id is passed in""" questionnaire = Questionnaire.query.get(id) @@ -43,6 +45,7 @@ def get_questionnaire(id): @questionnaire.route('/', methods=['POST']) +@cross_origin(supports_credentials=True) def create_questionnaire(): """Create a new Questionnaire""" pre = request.json['pre'] diff --git a/app/routes/v1/session.py b/app/routes/v1/session.py index 0930393..e116a12 100644 --- a/app/routes/v1/session.py +++ b/app/routes/v1/session.py @@ -16,6 +16,7 @@ """ from flask import Blueprint, jsonify, request +from flask_cors import cross_origin from app.models import Session, SessionSchema, Application, Questionnaire from app import db @@ -26,6 +27,7 @@ @session.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_sessions_list(): """Get a list of all the sessions""" sessions = Session.query.all() @@ -34,6 +36,7 @@ def get_sessions_list(): @session.route('/', methods=['GET']) +@cross_origin(supports_credentials=True) def get_session(id): """Get info on a session when an id is passed in""" session = Session.query.get(id) @@ -42,6 +45,7 @@ def get_session(id): @session.route('/', methods=['POST']) +@cross_origin(supports_credentials=True) def create_session(): """Create a new Session"""