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

View File

@ -21,7 +21,7 @@ import mimetypes
from werkzeug.datastructures import FileStorage from werkzeug.datastructures import FileStorage
from mediagoblin.decorators import oauth_required, require_active_login 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.db.models import User, MediaEntry, MediaComment, Activity
from mediagoblin.tools.federation import create_activity, create_generator from mediagoblin.tools.federation import create_activity, create_generator
from mediagoblin.tools.routing import extract_url_arguments from mediagoblin.tools.routing import extract_url_arguments
@ -641,7 +641,7 @@ def object_comments(request):
"totalItems": 0, "totalItems": 0,
"items": [], "items": [],
"url": request.urlgen( "url": request.urlgen(
"mediagoblin.federation.object.comments", "mediagoblin.api.object.comments",
object_type=media.object_type, object_type=media.object_type,
id=media.id, id=media.id,
qualified=True qualified=True
@ -721,7 +721,7 @@ def host_meta(request):
# provide XML+XRD # provide XML+XRD
return render_to_response( return render_to_response(
request, request,
"mediagoblin/federation/host-meta.xml", "mediagoblin/api/host-meta.xml",
{"links": links}, {"links": links},
mimetype="application/xrd+xml" mimetype="application/xrd+xml"
) )
@ -762,7 +762,7 @@ def lrdd_lookup(request):
{ {
"rel": "self", "rel": "self",
"href": request.urlgen( "href": request.urlgen(
"mediagoblin.federation.user", "mediagoblin.api.user",
username=user.username, username=user.username,
qualified=True qualified=True
) )
@ -770,7 +770,7 @@ def lrdd_lookup(request):
{ {
"rel": "activity-outbox", "rel": "activity-outbox",
"href": request.urlgen( "href": request.urlgen(
"mediagoblin.federation.feed", "mediagoblin.api.feed",
username=user.username, username=user.username,
qualified=True qualified=True
) )
@ -786,40 +786,11 @@ def whoami(request):
return json_error("Not logged in.", status=401) return json_error("Not logged in.", status=401)
profile = request.urlgen( profile = request.urlgen(
"mediagoblin.federation.user.profile", "mediagoblin.api.user.profile",
username=request.user.username, username=request.user.username,
qualified=True qualified=True
) )
return redirect(request, location=profile) 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): def get_url(self, request):
return request.urlgen( return request.urlgen(
"mediagoblin.federation.activity_view", "mediagoblin.user_pages.activity_view",
username=self.get_actor.username, username=self.get_actor.username,
id=self.id, id=self.id,
qualified=True qualified=True
@ -473,7 +473,7 @@ class ActivityMixin(object):
def serialize(self, request): def serialize(self, request):
href = request.urlgen( href = request.urlgen(
"mediagoblin.federation.object", "mediagoblin.api.object",
object_type=self.object_type, object_type=self.object_type,
id=self.id, id=self.id,
qualified=True qualified=True

View File

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

View File

@ -38,7 +38,7 @@ def get_url_map():
import mediagoblin.listings.routing import mediagoblin.listings.routing
import mediagoblin.notifications.routing import mediagoblin.notifications.routing
import mediagoblin.oauth.routing import mediagoblin.oauth.routing
import mediagoblin.federation.routing import mediagoblin.api.routing
for route in PluginManager().get_routes(): for route in PluginManager().get_routes():
add_route(*route) 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/', '/u/<string:user>/m/<int:media_id>/confirm-delete/',
'mediagoblin.user_pages.views:media_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 # Submission handling of new comments. TODO: only allow for POST methods
add_route('mediagoblin.user_pages.media_post_comment', add_route('mediagoblin.user_pages.media_post_comment',
'/u/<string:user>/m/<int:media_id>/comment/add/', '/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 import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection, from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
CollectionItem, User) CollectionItem, User, Activity)
from mediagoblin.tools.response import render_to_response, render_404, \ from mediagoblin.tools.response import render_to_response, render_404, \
redirect, redirect_obj redirect, redirect_obj
from mediagoblin.tools.text import cleaned_markdown_conversion from mediagoblin.tools.text import cleaned_markdown_conversion
@ -695,3 +695,34 @@ def file_a_report(request, media, comment):
request, request,
'mediagoblin/user_pages/report.html', 'mediagoblin/user_pages/report.html',
context) 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}
)