49 lines
1011 B
Python
49 lines
1011 B
Python
from flask import Flask, jsonify, Response, request
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from esales.cluster import Cluster
|
|
|
|
app = Flask(__name__)
|
|
app.config.from_object('config')
|
|
|
|
|
|
def on_404(e):
|
|
return jsonify(dict(error='Not found')), 404
|
|
|
|
app.errorhandler(404)(on_404)
|
|
|
|
# SQLAlchemy
|
|
db = SQLAlchemy(app)
|
|
|
|
# eSales
|
|
esales = Cluster(app.config.get("ESALES_URL"))
|
|
|
|
from api.views import designers, categories
|
|
app.register_blueprint(designers.mod)
|
|
app.register_blueprint(categories.mod)
|
|
|
|
|
|
def check_authentication():
|
|
auth = request.authorization
|
|
if not auth:
|
|
return False
|
|
return auth.username in app.config.get("API_KEYS")
|
|
|
|
|
|
@app.before_request
|
|
def authenticate():
|
|
if not check_authentication():
|
|
return Response(
|
|
'No valid API key provided', 401,
|
|
{'WWW-Authenticate': 'Basic realm="Login Required"'}
|
|
)
|
|
|
|
|
|
@app.route("/")
|
|
def index():
|
|
data = {
|
|
"info": {
|
|
"api_version": "0.0.1"
|
|
}
|
|
}
|
|
return jsonify(data)
|