""" 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(
"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):
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
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"]
""" 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"]