aboutsummaryrefslogtreecommitdiff
path: root/api/social
diff options
context:
space:
mode:
authorlonkaars <l.leblansch@gmail.com>2021-04-21 15:13:10 +0200
committerlonkaars <l.leblansch@gmail.com>2021-04-21 15:13:10 +0200
commit4254f328f9e85fcb838815bbee1ccedbcb41daf4 (patch)
treea80fd48b956f7ad0ecf1e5ccb7b5cbc044ace6ea /api/social
parentdadc722875b2095bd3d6c4ab628a644197b85f7b (diff)
dark mode notifications + /api/social/list endpoints working
Diffstat (limited to 'api/social')
-rw-r--r--api/social/list.py67
-rw-r--r--api/social/request_list.py27
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]