aboutsummaryrefslogtreecommitdiff
path: root/budget/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'budget/api.py')
-rw-r--r--budget/api.py53
1 files changed, 21 insertions, 32 deletions
diff --git a/budget/api.py b/budget/api.py
index c307fdf..c50d668 100644
--- a/budget/api.py
+++ b/budget/api.py
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
from flask import *
-import werkzeug
from models import db, Project, Person, Bill
from utils import for_all_methods
-from rest import RESTResource, need_auth # FIXME make it an ext
+from rest import RESTResource, need_auth# FIXME make it an ext
+from werkzeug import Response
api = Blueprint("api", __name__, url_prefix="/api")
@@ -33,7 +33,7 @@ class ProjectHandler(object):
@need_auth(check_project, "project")
def get(self, project):
- return "get"
+ return project
@need_auth(check_project, "project")
def delete(self, project):
@@ -47,7 +47,10 @@ class ProjectHandler(object):
class MemberHandler(object):
def get(self, project, member_id):
- pass
+ member = Person.query.get(member_id)
+ if not member or member.project != project:
+ return Response('Not Found', status=404)
+ return member
def list(self, project):
return project.members
@@ -59,25 +62,32 @@ class MemberHandler(object):
pass
def delete(self, project, member_id):
- pass
+ if project.remove_member(member_id):
+ return Response('OK', status=200)
class BillHandler(object):
- def get(self, project, member_id):
- pass
+ def get(self, project, bill_id):
+ bill = Bill.query.get(project, bill_id)
+ if not bill:
+ return Response('Not Found', status=404)
+ return bill
def list(self, project):
- pass
+ return project.get_bills().all()
def add(self, project):
pass
- def update(self, project, member_id):
+ def update(self, project, bill_id):
pass
- def delete(self, project, member_id):
- pass
+ def delete(self, project, bill_id):
+ bill = Bill.query.delete(project, bill_id)
+ if not bill:
+ return Response('Not Found', status=404)
+ return bill
project_resource = RESTResource(
@@ -102,24 +112,3 @@ bill_resource = RESTResource(
app=api,
handler=BillHandler(),
authentifier=check_project)
-
-# projects: add, delete, edit, get
-# GET /project/<id> → get
-# PUT /project/<id> → add & edit
-# DELETE /project/<id> → delete
-
-# project members: list, add, delete
-# GET /project/<id>/members → list
-# POST /project/<id>/members/ → add
-# PUT /project/<id>/members/<user_id> → edit
-# DELETE /project/<id>/members/<user_id> → delete
-
-# project bills: list, add, delete, edit, get
-# GET /project/<id>/bills → list
-# GET /project/<id>/bills/<bill_id> → get
-# DELETE /project/<id>/bills/<bill_id> → delete
-# POST /project/<id>/bills/ → add
-
-
-# GET, PUT, DELETE: /<id> : Get, update and delete
-# GET, POST: / Add & List