42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from flask import Flask, jsonify, Response, request
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from api.extensions.esales import Esales
|
|
from api.helpers import check_api_key
|
|
from api.exceptions import ValidationError
|
|
|
|
db = SQLAlchemy()
|
|
esales = Esales()
|
|
|
|
|
|
def create_app(config_name='config'):
|
|
app = Flask(__name__)
|
|
app.config.from_object(config_name)
|
|
|
|
db.init_app(app)
|
|
esales.init_app(app)
|
|
|
|
# register errors handlers
|
|
@app.errorhandler(404)
|
|
def on_404(error):
|
|
response = jsonify(
|
|
{'status': 404, 'message': 'The requested resource was not found'})
|
|
response.status_code = 404
|
|
return response
|
|
|
|
@app.errorhandler(ValidationError)
|
|
def on_validation_error(error):
|
|
response = jsonify({'status': 400, 'message': error.message})
|
|
response.status_code = 400
|
|
return response
|
|
|
|
# register resources
|
|
from api.resources import server, designers, categories
|
|
app.register_blueprint(server.mod)
|
|
app.register_blueprint(designers.mod)
|
|
app.register_blueprint(categories.mod)
|
|
|
|
# authentication
|
|
app.before_request(check_api_key)
|
|
|
|
return app
|