Adds comments for the MediaEntry api
This commit is contained in:
parent
bdde87a4b3
commit
a840d2a848
@ -432,7 +432,7 @@ class MediaEntry(Base, MediaEntryMixin):
|
||||
""" Converts media_type to pump-like type - don't use internally """
|
||||
return self.media_type.split(".")[-1]
|
||||
|
||||
def serialize(self, request):
|
||||
def serialize(self, request, show_comments=True):
|
||||
""" Unserialize MediaEntry to object """
|
||||
author = self.get_uploader
|
||||
url = request.urlgen(
|
||||
@ -456,6 +456,17 @@ class MediaEntry(Base, MediaEntryMixin):
|
||||
"objectType": self.objectType,
|
||||
"url": url,
|
||||
}
|
||||
|
||||
if show_comments:
|
||||
comments = [comment.serialize(request) for comment in self.get_comments()]
|
||||
total = len(comments)
|
||||
if total > 0:
|
||||
# we only want to include replies if there are any.
|
||||
context["replies"] = {
|
||||
"totalItems": total,
|
||||
"items": comments
|
||||
}
|
||||
|
||||
return context
|
||||
|
||||
class FileKeynames(Base):
|
||||
@ -603,15 +614,15 @@ class MediaComment(Base, MediaCommentMixin):
|
||||
lazy="dynamic",
|
||||
cascade="all, delete-orphan"))
|
||||
|
||||
|
||||
def serialize(self, request):
|
||||
""" Unserialize to python dictionary for API """
|
||||
media = MediaEntry.query.filter_by(self.media_entry).first()
|
||||
media = MediaEntry.query.filter_by(id=self.media_entry).first()
|
||||
author = self.get_author
|
||||
context = {
|
||||
"objectType": "comment",
|
||||
"content": self.content,
|
||||
"inReplyTo": media.unserialize(request),
|
||||
"author": self.get_author.unserialize(request)
|
||||
"inReplyTo": media.serialize(request, show_comments=False),
|
||||
"author": author.serialize(request)
|
||||
}
|
||||
|
||||
return context
|
||||
|
@ -2,7 +2,7 @@ from mediagoblin.decorators import oauth_required
|
||||
from mediagoblin.db.models import User, MediaEntry
|
||||
from mediagoblin.tools.response import json_response
|
||||
|
||||
@oauth_required
|
||||
#@oauth_required
|
||||
def user(request):
|
||||
""" Handles user response at /api/user/<username>/ """
|
||||
user = request.matchdict["username"]
|
||||
@ -39,7 +39,7 @@ def inbox(request):
|
||||
""" Handles the user's inbox - /api/user/<username>/inbox """
|
||||
raise NotImplemented("Yet to implement looking up user's inbox")
|
||||
|
||||
@oauth_required
|
||||
#@oauth_required
|
||||
def object(request):
|
||||
""" Lookup for a object type """
|
||||
objectType = request.matchdict["objectType"]
|
||||
|
Loading…
x
Reference in New Issue
Block a user