aboutsummaryrefslogtreecommitdiff
path: root/budget/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'budget/api.py')
-rw-r--r--budget/api.py71
1 files changed, 66 insertions, 5 deletions
diff --git a/budget/api.py b/budget/api.py
index 70864a6..e768bd9 100644
--- a/budget/api.py
+++ b/budget/api.py
@@ -5,7 +5,7 @@ import werkzeug
from models import db, Project, Person, Bill
from utils import for_all_methods
-from rest import RESTResource, DefaultHandler, need_auth # FIXME make it an ext
+from rest import RESTResource, need_auth # FIXME make it an ext
api = Blueprint("api", __name__, url_prefix="/api")
@@ -26,22 +26,83 @@ def check_project(*args, **kwargs):
return False
-class ProjectHandler(DefaultHandler):
+class ProjectHandler(object):
- def get(self, *args, **kwargs):
+ def add(self):
+ pass
+
+ @need_auth(check_project, "project")
+ def get(self, project):
return "get"
- def delete(self, *args, **kwargs):
+ @need_auth(check_project, "project")
+ def delete(self, project):
return "delete"
+ @need_auth(check_project, "project")
+ def update(self, project):
+ return "update"
+
+
+class MemberHandler(object):
+
+ def get(self, project, member_id):
+ pass
+
+ def list(self, project):
+ pass
+
+ def add(self, project):
+ pass
+
+ def update(self, project, member_id):
+ pass
+
+ def delete(self, project, member_id):
+ pass
+
+
+class BillHandler(object):
+
+ def get(self, project, member_id):
+ pass
+
+ def list(self, project):
+ pass
+
+ def add(self, project):
+ pass
+
+ def update(self, project, member_id):
+ pass
+
+ def delete(self, project, member_id):
+ pass
+
+
project_resource = RESTResource(
name="project",
route="/project",
app=api,
actions=["add", "update", "delete", "get"],
- authentifier=check_project,
handler=ProjectHandler())
+member_resource = RESTResource(
+ name="member",
+ inject_name="project",
+ route="/project/<project_id>/members",
+ app=api,
+ handler=MemberHandler(),
+ authentifier=check_project)
+
+bill_resource = RESTResource(
+ name="bill",
+ inject_name="project",
+ route="/project/<project_id>/bills",
+ app=api,
+ handler=BillHandler(),
+ authentifier=check_project)
+
# projects: add, delete, edit, get
# GET /project/<id> → get
# PUT /project/<id> → add & edit