diff --git a/api/core.py b/api/core.py index b068756..8418c2d 100644 --- a/api/core.py +++ b/api/core.py @@ -1,6 +1,5 @@ from flask import Flask, jsonify, Response, request from api.extensions import db, esales -from api.helpers import check_api_key from api.validators import ValidationError @@ -32,7 +31,4 @@ def create_app(config_name='config'): app.register_blueprint(categories.mod) app.register_blueprint(prices.mod) - # authentication - app.before_request(check_api_key) - return app diff --git a/api/resources/categories.py b/api/resources/categories.py index 622bdc4..8e9dcbc 100644 --- a/api/resources/categories.py +++ b/api/resources/categories.py @@ -1,10 +1,12 @@ from flask import Blueprint, request, jsonify from api import db, tasks from api.models import Category -from api.helpers import pagination_to_dict +from api.helpers import pagination_to_dict, check_api_key mod = Blueprint('categories', __name__, url_prefix='/categories') +mod.before_request(check_api_key) + @mod.route("/", methods=["GET"]) def list(): diff --git a/api/resources/designers.py b/api/resources/designers.py index 4c93c0d..5cee8eb 100644 --- a/api/resources/designers.py +++ b/api/resources/designers.py @@ -1,12 +1,14 @@ from flask import Blueprint, request, jsonify from api import db, tasks from api.models import Designer -from api.helpers import pagination_to_dict +from api.helpers import pagination_to_dict, check_api_key from api.validators import validate_jsonschema mod = Blueprint('designers', __name__, url_prefix='/designers') +mod.before_request(check_api_key) + create_designer_schema = { "type": "object", "properties": { diff --git a/api/resources/prices.py b/api/resources/prices.py index 6ae0c59..94b45b4 100644 --- a/api/resources/prices.py +++ b/api/resources/prices.py @@ -1,4 +1,5 @@ from flask import Blueprint, request, jsonify, abort +from api.helpers import check_api_key from api.validators import validate_territory, validate_number, validate_exists from api.models.product import Material from api.models.contract_customer import ContractCustomer @@ -9,6 +10,8 @@ from api.lib.limits import calculate_canvas_limits mod = Blueprint('prices', __name__, url_prefix='/prices') +mod.before_request(check_api_key) + def get_reseller(): dealerurl = request.args.get('dealerurl') diff --git a/api/resources/server.py b/api/resources/server.py index 4f7d15f..3b7d543 100644 --- a/api/resources/server.py +++ b/api/resources/server.py @@ -1,4 +1,4 @@ -from flask import Blueprint, jsonify +from flask import Blueprint, jsonify, url_for mod = Blueprint('server', __name__) diff --git a/tests/config.py b/tests/config.py index 5894a02..c84d656 100644 --- a/tests/config.py +++ b/tests/config.py @@ -6,3 +6,4 @@ ESALES_URL = '' TESTING = True DEBUG = True SQLALCHEMY_ECHO = False +API_KEYS = None # api keys are disabled in test \ No newline at end of file diff --git a/tests/test_web.py b/tests/test_web.py index 02310ba..95081b5 100644 --- a/tests/test_web.py +++ b/tests/test_web.py @@ -5,6 +5,7 @@ import json import base64 from api import create_app from flask import Flask +from api.helpers import check_api_key from api.validators import ValidationError, validate_exists, validate_number, validate_territory, validate_jsonschema @@ -13,7 +14,14 @@ class TestHttpBasicAuth(flask_testing.TestCase): api_key = 'secret' def create_app(self): - return create_app('tests.config') + app = Flask(__name__) + app.before_request(check_api_key) + + @app.route('/', methods=['GET']) + def index(): + return 'ok' + + return app def _enable_basic_auth(self): self.app.config['API_KEYS'] = [self.api_key]