summaryrefslogtreecommitdiff
path: root/coip/apps/activitystreams/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/activitystreams/views.py')
-rw-r--r--coip/apps/activitystreams/views.py45
1 files changed, 44 insertions, 1 deletions
diff --git a/coip/apps/activitystreams/views.py b/coip/apps/activitystreams/views.py
index a99bec3..91ba957 100644
--- a/coip/apps/activitystreams/views.py
+++ b/coip/apps/activitystreams/views.py
@@ -6,9 +6,52 @@ Created on Nov 8, 2011
from django.shortcuts import get_object_or_404
from coip.apps.name.models import Name
from coip.multiresponse import json_response
+from django_oauth2_lite.decorators import oauth2_required
+from actstream.models import Action
+from django.http import HttpResponseNotFound
+from coip.extensions.templatetags.userdisplay import userdisplay
+
+def user_to_json(o):
+ return {
+ 'objectType': 'person',
+ 'id': o.username,
+ 'displayName': userdisplay(o)
+ }
+
+def name_to_json(o):
+ return {
+ 'objectType': 'group',
+ 'id': o.id,
+ 'url': o.url(),
+ 'displayName': o.shortname()
+ }
+
+def object_to_json(o):
+ if o:
+ n = o.__class__.__name__
+ if n == 'User':
+ return user_to_json(o)
+ if n == 'Name':
+ return name_to_json(o)
+ else:
+ return "none"
+
+def activity_to_json(activity):
+ r = {
+ "published": activity.timestamp.isoformat(),
+ "actor": object_to_json(activity.actor),
+ "verb": activity.verb,
+ "object": object_to_json(activity.action_object),
+ "target": object_to_json(activity.target)
+ }
+ return r
@oauth2_required(scope='memberships')
def name(request,id):
name = get_object_or_404(Name,pk=id)
# check ownership
- return json_response(name.actor_actions.name_activities()) \ No newline at end of file
+ stream = Action.objects.stream_for_object_as_target(name)
+ if stream:
+ return json_response([activity_to_json(activity) for activity in stream])
+ else:
+ return HttpResponseNotFound() \ No newline at end of file