Commit | Line | Data |
---|---|---|
d7b3805f | 1 | from mediagoblin.decorators import oauth_required |
5a2056f7 | 2 | from mediagoblin.db.models import User, MediaEntry |
d7b3805f JT |
3 | from mediagoblin.tools.response import json_response |
4 | ||
a840d2a8 | 5 | #@oauth_required |
d7b3805f JT |
6 | def 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 | |
22 | def 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 | |
38 | def 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 |
43 | def 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)) |