diff options
Diffstat (limited to 'api/social/search.py')
-rw-r--r-- | api/social/search.py | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/api/social/search.py b/api/social/search.py index f0ce8a2..c0ef312 100644 --- a/api/social/search.py +++ b/api/social/search.py @@ -8,26 +8,26 @@ search = Blueprint('search', __name__) @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 - - # 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": []} - - # 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 + 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) + + 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])) + + return formatted, 200 dynamic_route = ["/social", search] |