diff --git a/dusken/main/api/groupmembership.py b/dusken/main/api/groupmembership.py new file mode 100644 index 0000000..b6bf9fe --- /dev/null +++ b/dusken/main/api/groupmembership.py @@ -0,0 +1,32 @@ +from tastypie import fields +from tastypie.resources import ModelResource, ALL +from tastypie.authorization import Authorization +from main.api.group import GroupResource +from main.api.member import MemberResource +from main.models import * + + +class GroupMembershipResource(ModelResource): + """ + This class provides following endpoints: + (1) /api/v1/groupmembership/ + """ + member = fields.ForeignKey(MemberResource, 'member') + group = fields.ForeignKey(GroupResource, 'group') + + class Meta: + queryset = GroupMembership.objects.all() + resource_name = 'groupmembership' + list_allowed_methods = [ 'get', 'post', 'put', 'delete' ] + detail_allowed_methods = [ 'get', 'post', 'put', 'delete' ] + authorization = Authorization() # TODO: for dev (VERY INSECURE) + filtering = { + 'member' : ALL, + 'group' : ALL, + } + + def dehydrate(self, bundle): + bundle.data['member'] = bundle.obj.member.id + bundle.data['group'] = bundle.obj.group.id + return bundle + diff --git a/dusken/main/urls.py b/dusken/main/urls.py index b0c0475..14ff0ce 100644 --- a/dusken/main/urls.py +++ b/dusken/main/urls.py @@ -3,11 +3,13 @@ from tastypie.api import Api from main.api.member import MemberResource from main.api.membership import MembershipResource from main.api.group import GroupResource +from main.api.groupmembership import GroupMembershipResource v1_api = Api(api_name='v1') v1_api.register(MemberResource()) v1_api.register(MembershipResource()) v1_api.register(GroupResource()) +v1_api.register(GroupMembershipResource()) urlpatterns = patterns('', (r'^api/', include(v1_api.urls)),