aboutsummaryrefslogtreecommitdiff
path: root/api/social
diff options
context:
space:
mode:
authorlonkaars <l.leblansch@gmail.com>2021-04-11 17:50:58 +0200
committerlonkaars <l.leblansch@gmail.com>2021-04-11 17:50:58 +0200
commit28f104de9ae9abe4b42abafbf3865ede5687996c (patch)
tree65e651f09d8fbf81380384692e45803cb4f9d61c /api/social
parent7b4859059b3bbabf4139ccdf3270a82c094f5d8e (diff)
dprint yapf python formatting
Diffstat (limited to 'api/social')
-rw-r--r--api/social/create_relation.py78
-rw-r--r--api/social/destroy_relation.py32
-rw-r--r--api/social/friend_accept.py19
-rw-r--r--api/social/request_list.py21
-rw-r--r--api/social/search.py34
5 files changed, 102 insertions, 82 deletions
diff --git a/api/social/create_relation.py b/api/social/create_relation.py
index 7e7c466..f58e105 100644
--- a/api/social/create_relation.py
+++ b/api/social/create_relation.py
@@ -4,56 +4,66 @@ from hierarchy import auth_required
from socket_io import io
import time
+
# @two_person_endpoint decorator
# defines (user_1_id, user_2_id) in endpoint handler function arguments
def two_person_endpoint(func):
- @auth_required("user")
- def wrapper(user_1_id):
- data = request.get_json()
- user_2_id = data.get("id") or ""
+ @auth_required("user")
+ def wrapper(user_1_id):
+ data = request.get_json()
+ user_2_id = data.get("id") or ""
+
+ if not user_1_id or \
+ not user_2_id:
+ return "", 403
+
+ return func(user_1_id, user_2_id)
- if not user_1_id or \
- not user_2_id:
- return "", 403
+ wrapper.__name__ = func.__name__
+ return wrapper
- return func(user_1_id, user_2_id)
- wrapper.__name__ = func.__name__
- return wrapper
def create_relation(user_1_id, user_2_id, relation_type):
- remove_relation(user_1_id, user_2_id)
- remove_relation(user_2_id, user_1_id)
- timestamp = int( time.time() * 1000 )
- cursor.execute("insert into social values (?, ?, ?, ?)",
- [user_1_id, user_2_id, relation_type, timestamp])
- connection.commit()
+ remove_relation(user_1_id, user_2_id)
+ remove_relation(user_2_id, user_1_id)
+ timestamp = int(time.time() * 1000)
+ cursor.execute(
+ "insert into social values (?, ?, ?, ?)",
+ [user_1_id, user_2_id, relation_type, timestamp]
+ )
+ connection.commit()
+
# remove relation between user_1_id and user_2_id (one-way)
def remove_relation(user_1_id, user_2_id):
- cursor.execute("delete from social where user_1_id = ? and user_2_id = ?",
- [user_1_id, user_2_id])
- connection.commit()
+ cursor.execute(
+ "delete from social where user_1_id = ? and user_2_id = ?",
+ [user_1_id, user_2_id]
+ )
+ connection.commit()
+
def create_relation_route(relation_type):
- @two_person_endpoint
- def route(user_1_id, user_2_id):
- create_relation(user_1_id, user_2_id, relation_type)
+ @two_person_endpoint
+ def route(user_1_id, user_2_id):
+ create_relation(user_1_id, user_2_id, relation_type)
- if relation_type == "outgoing":
- io.emit("incomingFriendRequest", room="user-"+user_2_id)
+ if relation_type == "outgoing":
+ io.emit("incomingFriendRequest", room="user-" + user_2_id)
- return "", 200
- return route
+ return "", 200
-friend_request = Blueprint('friend_request', __name__)
-friend_request.add_url_rule('/request', 'route', create_relation_route("outgoing"), methods = ["POST"])
+ return route
-block = Blueprint('block', __name__)
-block.add_url_rule('/block', 'route', create_relation_route("block"), methods = ["POST"])
-dynamic_routes = [
- ["/social", friend_request],
- ["/social", block]
- ]
+friend_request = Blueprint('friend_request', __name__)
+friend_request.add_url_rule(
+ '/request', 'route', create_relation_route("outgoing"), methods=["POST"]
+)
+block = Blueprint('block', __name__)
+block.add_url_rule(
+ '/block', 'route', create_relation_route("block"), methods=["POST"]
+)
+dynamic_routes = [["/social", friend_request], ["/social", block]]
diff --git a/api/social/destroy_relation.py b/api/social/destroy_relation.py
index 4b61ecd..ab72c48 100644
--- a/api/social/destroy_relation.py
+++ b/api/social/destroy_relation.py
@@ -7,32 +7,32 @@ import time
remove = Blueprint('remove', __name__)
-@remove.route('/remove', methods = ['POST'])
+
+@remove.route('/remove', methods=['POST'])
@two_person_endpoint
def index(user_1_id, user_2_id):
- relation = get_relation_to(user_1_id, user_2_id)
- if relation == "none": return "", 403
+ relation = get_relation_to(user_1_id, user_2_id)
+ if relation == "none": return "", 403
+
+ remove_relation(user_1_id, user_2_id)
+ remove_relation(user_2_id, user_1_id)
- remove_relation(user_1_id, user_2_id)
- remove_relation(user_2_id, user_1_id)
+ io.emit("changedRelation", {"id": user_2_id}, room="user-" + user_1_id)
+ io.emit("changedRelation", {"id": user_1_id}, room="user-" + user_2_id)
- io.emit("changedRelation", { "id": user_2_id }, room="user-"+user_1_id)
- io.emit("changedRelation", { "id": user_1_id }, room="user-"+user_2_id)
+ return "", 200
- return "", 200
unblock = Blueprint('unblock', __name__)
-@unblock.route('/unblock', methods = ['POST'])
+
+@unblock.route('/unblock', methods=['POST'])
@two_person_endpoint
def index(user_1_id, user_2_id):
- if get_relation_to(user_1_id, user_2_id) != "blocked": return "", 403
+ if get_relation_to(user_1_id, user_2_id) != "blocked": return "", 403
- remove_relation(user_1_id, user_2_id)
- return "", 200
+ remove_relation(user_1_id, user_2_id)
+ return "", 200
-dynamic_routes = [
- ["/social", remove],
- ["/social", unblock]
- ]
+dynamic_routes = [["/social", remove], ["/social", unblock]]
diff --git a/api/social/friend_accept.py b/api/social/friend_accept.py
index 4f1f847..75dd3b9 100644
--- a/api/social/friend_accept.py
+++ b/api/social/friend_accept.py
@@ -6,17 +6,20 @@ import time
accept = Blueprint('accept', __name__)
-@accept.route("/accept", methods = ['POST'])
+
+@accept.route("/accept", methods=['POST'])
@two_person_endpoint
def route(user_1_id, user_2_id):
- cursor.execute("update social set type = \"friendship\" where user_1_id = ? and user_2_id = ?",
- [user_2_id, user_1_id])
- connection.commit()
+ cursor.execute(
+ "update social set type = \"friendship\" where user_1_id = ? and user_2_id = ?",
+ [user_2_id, user_1_id]
+ )
+ connection.commit()
- io.emit("changedRelation", { "id": user_2_id }, room="user-"+user_1_id)
- io.emit("changedRelation", { "id": user_1_id }, room="user-"+user_2_id)
+ io.emit("changedRelation", {"id": user_2_id}, room="user-" + user_1_id)
+ io.emit("changedRelation", {"id": user_1_id}, room="user-" + user_2_id)
- return "", 200
+ return "", 200
-dynamic_route = ["/social", accept]
+dynamic_route = ["/social", accept]
diff --git a/api/social/request_list.py b/api/social/request_list.py
index 624b3b4..8d1acd6 100644
--- a/api/social/request_list.py
+++ b/api/social/request_list.py
@@ -6,19 +6,22 @@ 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 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))
+ # 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
+ return {"requests": formatted_request_list}, 200
-dynamic_route = ["/social/list", requests]
+dynamic_route = ["/social/list", requests]
diff --git a/api/social/search.py b/api/social/search.py
index 1159c67..a22ea73 100644
--- a/api/social/search.py
+++ b/api/social/search.py
@@ -5,25 +5,29 @@ import json
search = Blueprint('search', __name__)
-@search.route('/search', methods = ['POST'])
+
+@search.route('/search', methods=['POST'])
def index():
- data_string = request.data or "{}"
- data = json.loads(data_string)
- query = data.get("query") or ""
- if not query: return "", 400
- if len(query) < 3: return "", 403
+ data_string = request.data or "{}"
+ data = json.loads(data_string)
+ query = data.get("query") or ""
+ if not query: return "", 400
+ if len(query) < 3: return "", 403
- # use levenshtein with max distance 3 to search for users
- #TODO: use mysql and sort by best match
- results = cursor.execute("select user_id from users where levenshtein(lower(username), lower(?), 3)", [query]).fetchmany(20);
+ # use levenshtein with max distance 3 to search for users
+ #TODO: use mysql and sort by best match
+ results = cursor.execute(
+ "select user_id from users where levenshtein(lower(username), lower(?), 3)",
+ [query]
+ ).fetchmany(20)
- formatted = { "results": [] }
+ formatted = {"results": []}
- # get user_id for each result to prevent repeat user/info requests
- for user in results:
- formatted["results"].append(format_user(user[0]))
+ # get user_id for each result to prevent repeat user/info requests
+ for user in results:
+ formatted["results"].append(format_user(user[0]))
- return formatted, 200
+ return formatted, 200
-dynamic_route = ["/social", search]
+dynamic_route = ["/social", search]