diff --git a/ihatemoney/api/__init__.py b/ihatemoney/api/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ihatemoney/api.py b/ihatemoney/api/common.py similarity index 86% rename from ihatemoney/api.py rename to ihatemoney/api/common.py index 67c6cc183..728d2a8ef 100644 --- a/ihatemoney/api.py +++ b/ihatemoney/api/common.py @@ -1,7 +1,6 @@ # coding: utf8 -from flask import Blueprint, request, current_app -from flask_restful import Resource, Api, abort -from flask_cors import CORS +from flask import request, current_app +from flask_restful import Resource, abort from wtforms.fields.core import BooleanField from ihatemoney.models import db, Project, Person, Bill @@ -10,11 +9,6 @@ from functools import wraps -api = Blueprint("api", __name__, url_prefix="/api") -CORS(api) -restful_api = Api(api) - - def need_auth(f): """Check the request for basic authentication for a given project. @@ -195,19 +189,3 @@ def get(self, project): token = project.generate_token() return {"token": token}, 200 - - -restful_api.add_resource(ProjectsHandler, "/projects") -restful_api.add_resource(ProjectHandler, "/projects/") -restful_api.add_resource(TokenHandler, "/projects//token") -restful_api.add_resource(MembersHandler, "/projects//members") -restful_api.add_resource( - ProjectStatsHandler, "/projects//statistics" -) -restful_api.add_resource( - MemberHandler, "/projects//members/" -) -restful_api.add_resource(BillsHandler, "/projects//bills") -restful_api.add_resource( - BillHandler, "/projects//bills/" -) diff --git a/ihatemoney/api/v1/__init__.py b/ihatemoney/api/v1/__init__.py new file mode 100644 index 000000000..11afff7bc --- /dev/null +++ b/ihatemoney/api/v1/__init__.py @@ -0,0 +1,5 @@ +from .resources import api + +__all__ = [ + "api", +] diff --git a/ihatemoney/api/v1/resources.py b/ihatemoney/api/v1/resources.py new file mode 100644 index 000000000..821ba2bd5 --- /dev/null +++ b/ihatemoney/api/v1/resources.py @@ -0,0 +1,34 @@ +# coding: utf8 +from flask import Blueprint +from flask_restful import Api +from flask_cors import CORS + +from ihatemoney.api.common import ( + ProjectsHandler, + ProjectHandler, + TokenHandler, + MemberHandler, + ProjectStatsHandler, + MembersHandler, + BillHandler, + BillsHandler, +) + +api = Blueprint("api", __name__, url_prefix="/api") +CORS(api) +restful_api = Api(api) + +restful_api.add_resource(ProjectsHandler, "/projects") +restful_api.add_resource(ProjectHandler, "/projects/") +restful_api.add_resource(TokenHandler, "/projects//token") +restful_api.add_resource(MembersHandler, "/projects//members") +restful_api.add_resource( + ProjectStatsHandler, "/projects//statistics" +) +restful_api.add_resource( + MemberHandler, "/projects//members/" +) +restful_api.add_resource(BillsHandler, "/projects//bills") +restful_api.add_resource( + BillHandler, "/projects//bills/" +) diff --git a/ihatemoney/run.py b/ihatemoney/run.py index 6d1e03292..161761c09 100644 --- a/ihatemoney/run.py +++ b/ihatemoney/run.py @@ -8,7 +8,7 @@ from flask_migrate import Migrate, upgrade, stamp from werkzeug.middleware.proxy_fix import ProxyFix -from ihatemoney.api import api +from ihatemoney.api.v1 import api as apiv1 from ihatemoney.models import db from ihatemoney.utils import ( IhmJSONEncoder, @@ -132,7 +132,7 @@ def create_app( validate_configuration(app) app.register_blueprint(web_interface) - app.register_blueprint(api) + app.register_blueprint(apiv1) app.register_error_handler(404, page_not_found) # Configure the a, root="main"pplication