Change 'federation' name to 'api' which is more suitable

This commit is contained in:
Jessica Tallon 2015-01-12 13:42:02 +00:00
parent 4aaa7fac14
commit 4fd520364f
10 changed files with 84 additions and 85 deletions

View File

@ -18,134 +18,127 @@ from mediagoblin.tools.routing import add_route
# Add user profile
add_route(
"mediagoblin.federation.user",
"media.api.user",
"/api/user/<string:username>/",
"mediagoblin.federation.views:user_endpoint",
"mediagoblin.api.views:user_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.user.profile",
"mediagoblin.api.user.profile",
"/api/user/<string:username>/profile/",
"mediagoblin.federation.views:profile_endpoint",
"mediagoblin.api.views:profile_endpoint",
match_slash=False
)
# Inbox and Outbox (feed)
add_route(
"mediagoblin.federation.feed",
"mediagoblin.api.feed",
"/api/user/<string:username>/feed/",
"mediagoblin.federation.views:feed_endpoint",
"mediagoblin.api.views:feed_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.feed_major",
"mediagoblin.api.feed_major",
"/api/user/<string:username>/feed/major/",
"mediagoblin.federation.views:feed_major_endpoint",
"mediagoblin.api.views:feed_major_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.feed_minor",
"mediagoblin.api.feed_minor",
"/api/user/<string:username>/feed/minor/",
"mediagoblin.federation.views:feed_minor_endpoint",
"mediagoblin.api.views:feed_minor_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.user.uploads",
"mediagoblin.api.user.uploads",
"/api/user/<string:username>/uploads/",
"mediagoblin.federation.views:uploads_endpoint",
"mediagoblin.api.views:uploads_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox",
"mediagoblin.api.inbox",
"/api/user/<string:username>/inbox/",
"mediagoblin.federation.views:inbox_endpoint",
"mediagoblin.api.views:inbox_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox_minor",
"mediagoblin.api.inbox_minor",
"/api/user/<string:username>/inbox/minor/",
"mediagoblin.federation.views:inbox_minor_endpoint",
"mediagoblin.api.views:inbox_minor_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox_major",
"mediagoblin.api.inbox_major",
"/api/user/<string:username>/inbox/major/",
"mediagoblin.federation.views:inbox_major_endpoint",
"mediagoblin.api.views:inbox_major_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox_direct",
"mediagoblin.api.inbox_direct",
"/api/user/<string:username>/inbox/direct/",
"mediagoblin.federation.views:inbox_endpoint",
"mediagoblin.api.views:inbox_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox_direct_minor",
"mediagoblin.api.inbox_direct_minor",
"/api/user/<string:username>/inbox/direct/minor/",
"mediagoblin.federation.views:inbox_minor_endpoint",
"mediagoblin.api.views:inbox_minor_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.inbox_direct_major",
"mediagoblin.api.inbox_direct_major",
"/api/user/<string:username>/inbox/direct/major/",
"mediagoblin.federation.views:inbox_major_endpoint",
"mediagoblin.api.views:inbox_major_endpoint",
match_slash=False
)
# object endpoints
add_route(
"mediagoblin.federation.object",
"mediagoblin.api.object",
"/api/<string:object_type>/<string:id>/",
"mediagoblin.federation.views:object_endpoint",
"mediagoblin.api.views:object_endpoint",
match_slash=False
)
add_route(
"mediagoblin.federation.object.comments",
"mediagoblin.api.object.comments",
"/api/<string:object_type>/<string:id>/comments/",
"mediagoblin.federation.views:object_comments",
"mediagoblin.api.views:object_comments",
match_slash=False
)
add_route(
"mediagoblin.webfinger.well-known.host-meta",
"/.well-known/host-meta",
"mediagoblin.federation.views:host_meta"
"mediagoblin.api.views:host_meta"
)
add_route(
"mediagoblin.webfinger.well-known.host-meta.json",
"/.well-known/host-meta.json",
"mediagoblin.federation.views:host_meta"
"mediagoblin.api.views:host_meta"
)
add_route(
"mediagoblin.webfinger.well-known.webfinger",
"/.well-known/webfinger/",
"mediagoblin.federation.views:lrdd_lookup",
"mediagoblin.api.views:lrdd_lookup",
match_slash=False
)
add_route(
"mediagoblin.webfinger.whoami",
"/api/whoami/",
"mediagoblin.federation.views:whoami",
match_slash=False
)
add_route(
"mediagoblin.federation.activity_view",
"/<string:username>/activity/<string:id>/",
"mediagoblin.federation.views:activity_view",
"mediagoblin.api.views:whoami",
match_slash=False
)

View File

@ -21,7 +21,7 @@ import mimetypes
from werkzeug.datastructures import FileStorage
from mediagoblin.decorators import oauth_required, require_active_login
from mediagoblin.federation.decorators import user_has_privilege
from mediagoblin.api.decorators import user_has_privilege
from mediagoblin.db.models import User, MediaEntry, MediaComment, Activity
from mediagoblin.tools.federation import create_activity, create_generator
from mediagoblin.tools.routing import extract_url_arguments
@ -641,7 +641,7 @@ def object_comments(request):
"totalItems": 0,
"items": [],
"url": request.urlgen(
"mediagoblin.federation.object.comments",
"mediagoblin.api.object.comments",
object_type=media.object_type,
id=media.id,
qualified=True
@ -721,7 +721,7 @@ def host_meta(request):
# provide XML+XRD
return render_to_response(
request,
"mediagoblin/federation/host-meta.xml",
"mediagoblin/api/host-meta.xml",
{"links": links},
mimetype="application/xrd+xml"
)
@ -762,7 +762,7 @@ def lrdd_lookup(request):
{
"rel": "self",
"href": request.urlgen(
"mediagoblin.federation.user",
"mediagoblin.api.user",
username=user.username,
qualified=True
)
@ -770,7 +770,7 @@ def lrdd_lookup(request):
{
"rel": "activity-outbox",
"href": request.urlgen(
"mediagoblin.federation.feed",
"mediagoblin.api.feed",
username=user.username,
qualified=True
)
@ -786,40 +786,11 @@ def whoami(request):
return json_error("Not logged in.", status=401)
profile = request.urlgen(
"mediagoblin.federation.user.profile",
"mediagoblin.api.user.profile",
username=request.user.username,
qualified=True
)
return redirect(request, location=profile)
@require_active_login
def activity_view(request):
""" /<username>/activity/<id> - Display activity
This should display a HTML presentation of the activity
this is NOT an API endpoint.
"""
# Get the user object.
username = request.matchdict["username"]
user = User.query.filter_by(username=username).first()
activity_id = request.matchdict["id"]
if request.user is None:
return render_404(request)
activity = Activity.query.filter_by(
id=activity_id,
author=user.id
).first()
if activity is None:
return render_404(request)
return render_to_response(
request,
"mediagoblin/federation/activity.html",
{"activity": activity}
)

View File

@ -388,7 +388,7 @@ class ActivityMixin(object):
def get_url(self, request):
return request.urlgen(
"mediagoblin.federation.activity_view",
"mediagoblin.user_pages.activity_view",
username=self.get_actor.username,
id=self.id,
qualified=True
@ -473,7 +473,7 @@ class ActivityMixin(object):
def serialize(self, request):
href = request.urlgen(
"mediagoblin.federation.object",
"mediagoblin.api.object",
object_type=self.object_type,
id=self.id,
qualified=True

View File

@ -228,21 +228,21 @@ class User(Base, UserMixin):
"links": {
"self": {
"href": request.urlgen(
"mediagoblin.federation.user.profile",
"mediagoblin.api.user.profile",
username=self.username,
qualified=True
),
},
"activity-inbox": {
"href": request.urlgen(
"mediagoblin.federation.inbox",
"mediagoblin.api.inbox",
username=self.username,
qualified=True
)
},
"activity-outbox": {
"href": request.urlgen(
"mediagoblin.federation.feed",
"mediagoblin.api.feed",
username=self.username,
qualified=True
)
@ -532,7 +532,7 @@ class MediaEntry(Base, MediaEntryMixin):
def serialize(self, request, show_comments=True):
""" Unserialize MediaEntry to object """
href = request.urlgen(
"mediagoblin.federation.object",
"mediagoblin.api.object",
object_type=self.object_type,
id=self.id,
qualified=True
@ -584,7 +584,7 @@ class MediaEntry(Base, MediaEntryMixin):
"totalItems": total,
"items": comments,
"url": request.urlgen(
"mediagoblin.federation.object.comments",
"mediagoblin.api.object.comments",
object_type=self.object_type,
id=self.id,
qualified=True
@ -778,7 +778,7 @@ class MediaComment(Base, MediaCommentMixin):
def serialize(self, request):
""" Unserialize to python dictionary for API """
href = request.urlgen(
"mediagoblin.federation.object",
"mediagoblin.api.object",
object_type=self.object_type,
id=self.id,
qualified=True
@ -1243,7 +1243,7 @@ class Generator(Base):
def serialize(self, request):
href = request.urlgen(
"mediagoblin.federation.object",
"mediagoblin.api.object",
object_type=self.object_type,
id=self.id,
qualified=True

View File

@ -38,7 +38,7 @@ def get_url_map():
import mediagoblin.listings.routing
import mediagoblin.notifications.routing
import mediagoblin.oauth.routing
import mediagoblin.federation.routing
import mediagoblin.api.routing
for route in PluginManager().get_routes():
add_route(*route)

View File

@ -31,6 +31,10 @@ add_route('mediagoblin.user_pages.media_confirm_delete',
'/u/<string:user>/m/<int:media_id>/confirm-delete/',
'mediagoblin.user_pages.views:media_confirm_delete')
add_route('mediagoblin.user_pages.activity_view',
'/<string:username>/activity/<string:id>/',
'mediagoblin.user_pages.views:activity_view')
# Submission handling of new comments. TODO: only allow for POST methods
add_route('mediagoblin.user_pages.media_post_comment',
'/u/<string:user>/m/<int:media_id>/comment/add/',

View File

@ -22,7 +22,7 @@ import six
from mediagoblin import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
CollectionItem, User)
CollectionItem, User, Activity)
from mediagoblin.tools.response import render_to_response, render_404, \
redirect, redirect_obj
from mediagoblin.tools.text import cleaned_markdown_conversion
@ -695,3 +695,34 @@ def file_a_report(request, media, comment):
request,
'mediagoblin/user_pages/report.html',
context)
@require_active_login
def activity_view(request):
""" /<username>/activity/<id> - Display activity
This should display a HTML presentation of the activity
this is NOT an API endpoint.
"""
# Get the user object.
username = request.matchdict["username"]
user = User.query.filter_by(username=username).first()
activity_id = request.matchdict["id"]
if request.user is None:
return render_404(request)
activity = Activity.query.filter_by(
id=activity_id,
author=user.id
).first()
if activity is None:
return render_404(request)
return render_to_response(
request,
"mediagoblin/api/activity.html",
{"activity": activity}
)