diff options
Diffstat (limited to 'coip/apps/activitystreams/views.py')
| -rw-r--r-- | coip/apps/activitystreams/views.py | 45 | 
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 | 
