Improve error handling on all routes
parent
b34a8f21ce
commit
162aa71a15
|
@ -1,9 +1,11 @@
|
||||||
from flask_restful import Api
|
from flask_restful import Api
|
||||||
from marshmallow import ValidationError
|
from marshmallow import ValidationError
|
||||||
from flask import Blueprint
|
from flask import Blueprint, jsonify
|
||||||
|
|
||||||
|
|
||||||
api_bp = Blueprint('api', __name__)
|
api_bp = Blueprint('api', __name__)
|
||||||
|
|
||||||
|
|
||||||
api = Api(api_bp)
|
api = Api(api_bp)
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,12 +81,18 @@ add_resources()
|
||||||
@api_bp.errorhandler(ValidationError)
|
@api_bp.errorhandler(ValidationError)
|
||||||
@api_bp.errorhandler(422)
|
@api_bp.errorhandler(422)
|
||||||
def handle_validation_error(e):
|
def handle_validation_error(e):
|
||||||
return {'status': 'error', 'message': str(e)}, 422
|
return jsonify({'status': 'error', 'message': str(e)}), 422
|
||||||
|
|
||||||
|
|
||||||
|
@api_bp.errorhandler(ValueError)
|
||||||
|
def handle_value_error(e):
|
||||||
|
return jsonify({'status': 'error', 'message': str(e)}), 422
|
||||||
|
|
||||||
|
|
||||||
@api_bp.errorhandler(Exception)
|
@api_bp.errorhandler(Exception)
|
||||||
|
@api_bp.errorhandler(500)
|
||||||
def handle_unknown_errors(e):
|
def handle_unknown_errors(e):
|
||||||
return ({
|
return jsonify({
|
||||||
'status': 'failed',
|
'status': 'failed',
|
||||||
'message': 'Unknown error has occurred! ({0})'.format(str(e))
|
'message': 'Unknown error has occurred! ({0})'.format(str(e))
|
||||||
}, 500)
|
}), 500
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# App initialization
|
# App initialization
|
||||||
from flask_api import FlaskAPI
|
from flask import Flask
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from flask_bcrypt import Bcrypt
|
from flask_bcrypt import Bcrypt
|
||||||
from flask_mail import Mail
|
from flask_mail import Mail
|
||||||
|
@ -7,7 +7,7 @@ from flasgger import Swagger
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
from .tasks import celery_configurator
|
from .tasks import celery_configurator
|
||||||
|
|
||||||
app = FlaskAPI(__name__, instance_relative_config=True)
|
app = Flask(__name__, instance_relative_config=True)
|
||||||
app.config.from_object('config')
|
app.config.from_object('config')
|
||||||
app.config.from_pyfile('config.py', silent=True)
|
app.config.from_pyfile('config.py', silent=True)
|
||||||
db = SQLAlchemy(app)
|
db = SQLAlchemy(app)
|
||||||
|
|
|
@ -10,7 +10,6 @@ cffi==1.11.5
|
||||||
click==6.7
|
click==6.7
|
||||||
flasgger==0.8.3
|
flasgger==0.8.3
|
||||||
Flask==1.0.2
|
Flask==1.0.2
|
||||||
Flask-API==1.0
|
|
||||||
Flask-Bcrypt==0.7.1
|
Flask-Bcrypt==0.7.1
|
||||||
Flask-Cors==3.0.4
|
Flask-Cors==3.0.4
|
||||||
Flask-Mail==0.9.1
|
Flask-Mail==0.9.1
|
||||||
|
|
Loading…
Reference in New Issue