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