Adds comments for the MediaEntry api
[mediagoblin.git] / mediagoblin / federation / views.py
CommitLineData
d7b3805f 1from mediagoblin.decorators import oauth_required
5a2056f7 2from mediagoblin.db.models import User, MediaEntry
d7b3805f
JT
3from mediagoblin.tools.response import json_response
4
a840d2a8 5#@oauth_required
d7b3805f
JT
6def user(request):
7 """ Handles user response at /api/user/<username>/ """
8 user = request.matchdict["username"]
9 requested_user = User.query.filter_by(username=user)
10
11 # check if the user exists
12 if requested_user is None:
13 error = "No such 'user' with id '{0}'".format(user)
14 return json_response({"error": error}, status=404)
15
16 user = requested_user[0]
17
18 # user profiles are public so return information
19 return json_response(user.serialize(request))
20
21@oauth_required
22def feed(request):
23 """ Handles the user's outbox - /api/user/<username>/feed """
24 user = request.matchdict["username"]
25 requested_user = User.query.filter_by(username=user)
26
27 # check if the user exists
28 if requested_user is None:
29 error = "No such 'user' with id '{0}'".format(user)
30 return json_response({"error": error}, status=404)
31
32 user = request_user[0]
33
34 # Now lookup the user's feed.
35 raise NotImplemented("Yet to implement looking up user's feed")
36
37@oauth_required
38def inbox(request):
39 """ Handles the user's inbox - /api/user/<username>/inbox """
d7b3805f 40 raise NotImplemented("Yet to implement looking up user's inbox")
5a2056f7 41
a840d2a8 42#@oauth_required
5a2056f7
JT
43def object(request):
44 """ Lookup for a object type """
45 objectType = request.matchdict["objectType"]
46 uuid = request.matchdict["uuid"]
47 if objectType not in ["image"]:
48 error = "Unknown type: {0}".format(objectType)
49 # not sure why this is 404, maybe ask evan. Maybe 400?
50 return json_response({"error": error}, status=404)
51
52 media = MediaEntry.query.filter_by(uuid=uuid).first()
53 if media is None:
54 # no media found with that uuid
55 error = "Can't find a {0} with ID = {1}".format(objectType, uuid)
56 return json_response({"error": error}, status=404)
57
bdde87a4 58 return json_response(media.serialize(request))