54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
from flask import Flask, jsonify, Response, request
|
|
from api.extensions import db, bernard
|
|
from api.validators import ValidationError
|
|
|
|
|
|
def create_app(config_name="config"):
|
|
app = Flask(__name__)
|
|
app.config.from_object(config_name)
|
|
|
|
db.init_app(app)
|
|
bernard.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
|
|
|
|
@app.errorhandler(ValueError)
|
|
def on_validation_error(error):
|
|
response = jsonify({"status": 400, "message": str(error)})
|
|
response.status_code = 400
|
|
return response
|
|
|
|
# register resources
|
|
from api.resources import (
|
|
server,
|
|
designers,
|
|
categories,
|
|
prices,
|
|
orders,
|
|
order_rows,
|
|
markets,
|
|
)
|
|
|
|
app.register_blueprint(server.mod)
|
|
app.register_blueprint(designers.mod)
|
|
app.register_blueprint(categories.mod)
|
|
app.register_blueprint(prices.mod)
|
|
app.register_blueprint(orders.mod)
|
|
app.register_blueprint(order_rows.mod)
|
|
app.register_blueprint(markets.mod)
|
|
|
|
return app
|