diff options
Diffstat (limited to 'budget/api.py')
| -rw-r--r-- | budget/api.py | 53 |
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 |
