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 """
|
""" Converts media_type to pump-like type - don't use internally """
|
||||||
return self.media_type.split(".")[-1]
|
return self.media_type.split(".")[-1]
|
||||||
|
|
||||||
def serialize(self, request):
|
def serialize(self, request, show_comments=True):
|
||||||
""" Unserialize MediaEntry to object """
|
""" Unserialize MediaEntry to object """
|
||||||
author = self.get_uploader
|
author = self.get_uploader
|
||||||
url = request.urlgen(
|
url = request.urlgen(
|
||||||
@ -456,6 +456,17 @@ class MediaEntry(Base, MediaEntryMixin):
|
|||||||
"objectType": self.objectType,
|
"objectType": self.objectType,
|
||||||
"url": url,
|
"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
|
return context
|
||||||
|
|
||||||
class FileKeynames(Base):
|
class FileKeynames(Base):
|
||||||
@ -603,15 +614,15 @@ class MediaComment(Base, MediaCommentMixin):
|
|||||||
lazy="dynamic",
|
lazy="dynamic",
|
||||||
cascade="all, delete-orphan"))
|
cascade="all, delete-orphan"))
|
||||||
|
|
||||||
|
|
||||||
def serialize(self, request):
|
def serialize(self, request):
|
||||||
""" Unserialize to python dictionary for API """
|
""" 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 = {
|
context = {
|
||||||
"objectType": "comment",
|
"objectType": "comment",
|
||||||
"content": self.content,
|
"content": self.content,
|
||||||
"inReplyTo": media.unserialize(request),
|
"inReplyTo": media.serialize(request, show_comments=False),
|
||||||
"author": self.get_author.unserialize(request)
|
"author": author.serialize(request)
|
||||||
}
|
}
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
@ -2,7 +2,7 @@ from mediagoblin.decorators import oauth_required
|
|||||||
from mediagoblin.db.models import User, MediaEntry
|
from mediagoblin.db.models import User, MediaEntry
|
||||||
from mediagoblin.tools.response import json_response
|
from mediagoblin.tools.response import json_response
|
||||||
|
|
||||||
@oauth_required
|
#@oauth_required
|
||||||
def user(request):
|
def user(request):
|
||||||
""" Handles user response at /api/user/<username>/ """
|
""" Handles user response at /api/user/<username>/ """
|
||||||
user = request.matchdict["username"]
|
user = request.matchdict["username"]
|
||||||
@ -39,7 +39,7 @@ def inbox(request):
|
|||||||
""" Handles the user's inbox - /api/user/<username>/inbox """
|
""" Handles the user's inbox - /api/user/<username>/inbox """
|
||||||
raise NotImplemented("Yet to implement looking up user's inbox")
|
raise NotImplemented("Yet to implement looking up user's inbox")
|
||||||
|
|
||||||
@oauth_required
|
#@oauth_required
|
||||||
def object(request):
|
def object(request):
|
||||||
""" Lookup for a object type """
|
""" Lookup for a object type """
|
||||||
objectType = request.matchdict["objectType"]
|
objectType = request.matchdict["objectType"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user