diff options
Diffstat (limited to 'coip')
-rw-r--r-- | coip/apps/opensocial/urls.py | 1 | ||||
-rw-r--r-- | coip/apps/opensocial/views.py | 17 |
2 files changed, 15 insertions, 3 deletions
diff --git a/coip/apps/opensocial/urls.py b/coip/apps/opensocial/urls.py index 67b1177..420b424 100644 --- a/coip/apps/opensocial/urls.py +++ b/coip/apps/opensocial/urls.py @@ -9,5 +9,6 @@ urlpatterns = patterns('coip.apps.opensocial.views', url(r'^rpc$',view='rpc'), url(r'^people/(?P<uid>.+)$', view='person'), url(r'^people/(?P<uid>.+)/(?P<gid>.+)$', view='person'), + url(r'^groups/(?P<uid>.+)$', view='group'), url(r'^activitystreams/', include('coip.apps.activitystreams.urls')) )
\ No newline at end of file diff --git a/coip/apps/opensocial/views.py b/coip/apps/opensocial/views.py index ff04505..fee2285 100644 --- a/coip/apps/opensocial/views.py +++ b/coip/apps/opensocial/views.py @@ -12,6 +12,7 @@ from django.http import HttpResponseNotFound, HttpResponseBadRequest from coip.apps.name.models import Name import json from django.utils import simplejson +from coip.apps.membership.models import Membership def _resolve_user(request,uid): if uid == '@me': @@ -43,7 +44,7 @@ def _resolve_group(request,user,gid): return None -def _opensocial_response(lst): +def _opensocial_collection(lst): return { "startIndex": 0, "totalResults": len(lst), @@ -65,7 +66,7 @@ def person(request,uid,gid='@self'): user = _resolve_user(request,uid) if not user: - return HttpResponseNotFound() + return HttpResponseNotFound("No such user") name = _resolve_group(request,user,gid) @@ -73,5 +74,15 @@ def person(request,uid,gid='@self'): return HttpResponseNotFound() ##TODO - implement listing people based on group memberships - return json_response(_opensocial_response([user])) + return json_response(_opensocial_collection([user])) +@oauth2_required(scope='opensocial') +def group(request,uid='@me'): + user = _resolve_user(request,uid) + if not user: + return HttpResponseNotFound("No such user") + + memberships = user.memberships.filter(hidden=False) + return json_response(_opensocial_collection([m.name for m in memberships])) + +
\ No newline at end of file |