Archived
Better handling of GET request for /member/<id>/group/<id>/ - changed format somewhat and made code more tastypieish.
This commit is contained in:
1 parent
ecd1bdcd9f
commit
2d997156b9
2 files changed
+36
-21
No files matched your search
@@ -129,6 +129,21 @@ GET /member/(int)/group/(int)/
|
||||
:statuscode 200: OK!
|
||||
:statuscode 403: No go, brother :(
|
||||
|
||||
**Example response**:
|
||||
|
||||
.. sourcecode:: http
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Vary: Accept
|
||||
Content-Type: text/javascript
|
||||
|
||||
{
|
||||
group_id: 1,
|
||||
is_member: true,
|
||||
member_id: 1,
|
||||
resource_uri: ""
|
||||
}
|
||||
|
||||
POST /member/
|
||||
-------------
|
||||
.. http:post:: /member/
|
||||
|
||||
@@ -9,17 +9,19 @@ from dusken.models import Member, Group
|
||||
|
||||
import logging
|
||||
|
||||
class GroupsByMemberObject(object):
|
||||
class GroupByMemberObject(object):
|
||||
def __init__(self):
|
||||
self.member_id = 0
|
||||
self.groups = []
|
||||
self.group_id = []
|
||||
self.is_member = True
|
||||
|
||||
class GroupsByMemberResource(Resource):
|
||||
member_id = fields.IntegerField(attribute='member_id')
|
||||
groups = fields.ListField(attribute='groups')
|
||||
group_id = fields.IntegerField(attribute='group_id')
|
||||
is_member = fields.BooleanField(attribute='is_member')
|
||||
|
||||
class Meta:
|
||||
object_class = GroupsByMemberObject
|
||||
object_class = GroupByMemberObject
|
||||
list_allowed_methods = [ 'get' ]
|
||||
detail_allowed_methods = [ 'get', 'delete', 'post' ]
|
||||
authorization = Authorization() # TODO: Obvious
|
||||
@@ -38,33 +40,31 @@ class GroupsByMemberResource(Resource):
|
||||
def obj_get_list(self, request=None, **kwargs):
|
||||
member_id = int(kwargs['member_id'])
|
||||
member = get_object_or_404(Member, pk=member_id)
|
||||
|
||||
groups = []
|
||||
for group in member.groups.all():
|
||||
groups.append(group)
|
||||
obj = GroupByMemberObject
|
||||
obj.member_id = member_id
|
||||
obj.group_id = group.id
|
||||
obj.is_member = True
|
||||
groups.append(obj)
|
||||
|
||||
return groups
|
||||
|
||||
def obj_get(self, request=None, **kwargs):
|
||||
member_id = int(kwargs['member_id'])
|
||||
member = Member.objects.get(id=member_id)
|
||||
member = get_object_or_404(Member, pk=member_id)
|
||||
|
||||
group_id = int(kwargs['group_id'])
|
||||
group = Group.objects.get(id=group_id)
|
||||
group = get_object_or_404(Group, pk=group_id)
|
||||
|
||||
if member is None:
|
||||
raise ImmediateHttpResponse(HttpNotFound())
|
||||
|
||||
if member.groups.filter(name=group.name).count() == 0:
|
||||
raise ImmediateHttpResponse(HttpNotFound())
|
||||
|
||||
if group is None:
|
||||
return None
|
||||
|
||||
obj = GroupsByMemberObject()
|
||||
obj = GroupByMemberObject()
|
||||
obj.member_id = member_id
|
||||
for group in member.groups.all():
|
||||
obj.groups.append(group)
|
||||
obj.group_id = group_id
|
||||
|
||||
if member.groups.filter(id=group_id).count() == 0:
|
||||
obj.is_member = False
|
||||
else:
|
||||
obj.is_member = True
|
||||
|
||||
return obj
|
||||
|
||||
@@ -81,7 +81,7 @@ class GroupsByMemberResource(Resource):
|
||||
group_id = keys[1]
|
||||
|
||||
|
||||
logging.error("Calling create function with parameters {0}".format(str(kwargs)))
|
||||
print("Calling create function with parameters {0}".format(str(kwargs)))
|
||||
return HttpCreated()
|
||||
|
||||
def obj_update(self, bundle, request=None, **kwargs):
|
||||
|
||||
Reference in new issue
Block a user