Add JSONP support to REST endpoints.

JSONP is required to allow cross-origin API requests from
JavaScript clients. This adds the `flask-jsonpify` library to
support this additional request method, and uses it in all current
routes.

Change-Id: Ifb7d5abaa16cf165bfc763fec1189fdfb48a4b88
This commit is contained in:
Tim Buckley 2015-09-16 11:50:19 -06:00
parent 58a41eb680
commit 7cee0cfb40
2 changed files with 8 additions and 6 deletions

View File

@ -17,6 +17,7 @@ import ConfigParser
import sys
import flask
from flask.ext.jsonpify import jsonify
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from subunit2sql.db import api
@ -32,7 +33,7 @@ def get_runs_from_build_name(build_name):
session = Session()
db_runs = api.get_runs_by_key_value('build_name', build_name, session)
runs = [run.to_dict() for run in db_runs]
return flask.jsonify({'runs': runs})
return jsonify({'runs': runs})
@app.route('/runs', methods=['GET'])
@ -41,7 +42,7 @@ def get_runs():
session = Session()
db_runs = api.get_all_runs(session)
runs = [run.to_dict() for run in db_runs]
return flask.jsonify({'runs': runs})
return jsonify({'runs': runs})
@app.route('/run/<string:run_id>/tests', methods=['GET'])
@ -50,7 +51,7 @@ def get_tests_from_run(run_id):
session = Session()
db_tests = api.get_tests_from_run_id(run_id, session)
tests = [test.to_dict() for test in db_tests]
return flask.jsonify({'tests': tests})
return jsonify({'tests': tests})
@app.route('/run/<string:run_id>/test_runs', methods=['GET'])
@ -58,7 +59,7 @@ def get_run_test_runs(run_id):
global Session
session = Session()
db_test_runs = api.get_tests_run_dicts_from_run_id(run_id, session)
return flask.jsonift(db_test_runs)
return jsonify(db_test_runs)
@app.route('/tests', methods=['GET'])
@ -67,7 +68,7 @@ def get_tests():
session = Session()
db_tests = api.get_all_tests(session)
tests = [test.to_dict() for test in db_tests]
return flask.jsonify({'tests': tests})
return jsonify({'tests': tests})
@app.route('/test_runs', methods=['GET'])
@ -76,7 +77,7 @@ def get_test_runs():
session = Session()
db_test_runs = api.get_all_test_runs(session)
test_runs = [test_run.to_dict() for test_run in db_test_runs]
return flask.jsonify({'test_runs': test_runs})
return jsonify({'test_runs': test_runs})
def main():

View File

@ -5,3 +5,4 @@ pbr<2.0,>=1.6
flask
subunit2sql>=0.8.0
sqlalchemy
flask-jsonpify