1 from mediagoblin
.decorators
import oauth_required
2 from mediagoblin
.db
.models
import User
, MediaEntry
3 from mediagoblin
.tools
.response
import json_response
7 """ Handles user response at /api/user/<username>/ """
8 user
= request
.matchdict
["username"]
9 requested_user
= User
.query
.filter_by(username
=user
)
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)
16 user
= requested_user
[0]
18 # user profiles are public so return information
19 return json_response(user
.serialize(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
)
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)
32 user
= request_user
[0]
34 # Now lookup the user's feed.
35 raise NotImplemented("Yet to implement looking up user's feed")
39 """ Handles the user's inbox - /api/user/<username>/inbox """
40 raise NotImplemented("Yet to implement looking up user's inbox")
42 def image_object(request
, media
):
43 """ Return image object - /api/image/<uuid> """
44 author
= media
.get_uploader
46 "mediagoblin.user_pages.media_home",
53 "author": author
.serialize(request
),
54 "displayName": media
.title
,
55 "objectType": "image",
59 return json_response(context
)
63 """ Lookup for a object type """
64 objectType
= request
.matchdict
["objectType"]
65 uuid
= request
.matchdict
["uuid"]
66 if objectType
not in ["image"]:
67 error
= "Unknown type: {0}".format(objectType
)
68 # not sure why this is 404, maybe ask evan. Maybe 400?
69 return json_response({"error": error
}, status
=404)
71 media
= MediaEntry
.query
.filter_by(uuid
=uuid
).first()
73 # no media found with that uuid
74 error
= "Can't find a {0} with ID = {1}".format(objectType
, uuid
)
75 return json_response({"error": error
}, status
=404)
77 if objectType
== "image":
78 return image_object(request
, media
)