diff options
| author | lonkaars <l.leblansch@gmail.com> | 2021-04-21 15:13:10 +0200 | 
|---|---|---|
| committer | lonkaars <l.leblansch@gmail.com> | 2021-04-21 15:13:10 +0200 | 
| commit | 4254f328f9e85fcb838815bbee1ccedbcb41daf4 (patch) | |
| tree | a80fd48b956f7ad0ecf1e5ccb7b5cbc044ace6ea /api | |
| parent | dadc722875b2095bd3d6c4ab628a644197b85f7b (diff) | |
dark mode notifications + /api/social/list endpoints working
Diffstat (limited to 'api')
| -rw-r--r-- | api/social/list.py | 67 | ||||
| -rw-r--r-- | api/social/request_list.py | 27 | 
2 files changed, 67 insertions, 27 deletions
| diff --git a/api/social/list.py b/api/social/list.py new file mode 100644 index 0000000..ce0f4d9 --- /dev/null +++ b/api/social/list.py @@ -0,0 +1,67 @@ +from flask import Blueprint, request +from db import cursor, connection +from hierarchy import auth_required +from user.info import format_user +import time + + +def format_user_list(user_ids, viewer=None): +    formatted_request_list = [] + +    for user_1_id in user_ids: +        formatted_request_list.append(format_user(user_1_id, viewer)) + +    return formatted_request_list + + +requests = Blueprint('requests', __name__) + + +@requests.route("/requests") +@auth_required("user") +def route(user_2_id): +    # get a list of friend requests +    request_list = cursor.execute( +        "select user_1_id from social where user_2_id = ? and type = \"outgoing\"", +        [user_2_id] +    ).fetchall() + +    return {"requests": format_user_list([q[0] for q in request_list])}, 200 + + +friends = Blueprint('friends', __name__) + + +@friends.route("/friends") +@auth_required("user") +def route(user_id): +    # get a list of friend requests +    request_list = cursor.execute( +        "select user_1_id, user_2_id from social where (user_1_id = ? or user_2_id = ?) and type = \"friendship\"", +        [user_id, user_id] +    ).fetchall() + +    friend_id_list = [q[0] if q[1] == user_id else q[1] for q in request_list] + +    return {"friends": format_user_list(friend_id_list)}, 200 + + +blocked = Blueprint('blocked', __name__) + + +@blocked.route("/blocked") +@auth_required("user") +def route(user_id): +    # get a list of friend requests +    request_list = cursor.execute( +        "select user_2_id from social where user_1_id = ? and type = \"block\"", +        [user_id] +    ).fetchall() + +    return {"blocked": format_user_list([q[0] for q in request_list])}, 200 + + +dynamic_routes = [ +    ["/social/list", requests], ["/social/list", friends], +    ["/social/list", blocked] +] diff --git a/api/social/request_list.py b/api/social/request_list.py deleted file mode 100644 index f991ce2..0000000 --- a/api/social/request_list.py +++ /dev/null @@ -1,27 +0,0 @@ -from flask import Blueprint, request -from db import cursor, connection -from hierarchy import auth_required -from user.info import format_user -import time - -requests = Blueprint('requests', __name__) - - -@requests.route("/requests") -@auth_required("user") -def route(user_2_id): -    # get a list of friend requests -    request_list = cursor.execute( -        "select user_1_id from social where user_2_id = ? and type = \"outgoing\"", -        [user_2_id] -    ).fetchall() - -    # get user_id for each result to prevent repeat user/info requests -    formatted_request_list = [] -    for user_1_id in [q[0] for q in request_list]: -        formatted_request_list.append(format_user(user_1_id)) - -    return {"requests": formatted_request_list}, 200 - - -dynamic_route = ["/social/list", requests] |