aboutsummaryrefslogtreecommitdiff
path: root/api/social
diff options
context:
space:
mode:
Diffstat (limited to 'api/social')
-rw-r--r--api/social/search.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/api/social/search.py b/api/social/search.py
new file mode 100644
index 0000000..712d0b8
--- /dev/null
+++ b/api/social/search.py
@@ -0,0 +1,26 @@
+from flask import Blueprint, request
+from db import cursor
+from user.info import format_user
+import json
+
+search = Blueprint('search', __name__)
+
+@search.route('/search', methods = ['GET', '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
+
+ results = cursor.execute("select user_id from users where levenshtein(username, ?, 3)", [query]).fetchmany(20);
+
+ formatted = { "results": [] }
+
+ for user in results:
+ formatted["results"].append(format_user(user[0]))
+
+ return formatted, 200
+
+dynamic_route = ["/social", search]
+