From 4254f328f9e85fcb838815bbee1ccedbcb41daf4 Mon Sep 17 00:00:00 2001 From: lonkaars Date: Wed, 21 Apr 2021 15:13:10 +0200 Subject: dark mode notifications + /api/social/list endpoints working --- api/social/list.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++ api/social/request_list.py | 27 ------------------- 2 files changed, 67 insertions(+), 27 deletions(-) create mode 100644 api/social/list.py delete mode 100644 api/social/request_list.py (limited to 'api/social') 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] -- cgit v1.2.3