diff options
Diffstat (limited to 'api/social/search.py')
-rw-r--r-- | api/social/search.py | 34 |
1 files changed, 19 insertions, 15 deletions
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] |