Skip to content

Commit a8b1526

Browse files
committed
Update autocomplete API to use marshmallow
1 parent 31a8d5e commit a8b1526

File tree

4 files changed

+22
-14
lines changed

4 files changed

+22
-14
lines changed

Pipfile

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ markupsafe = "*"
2121
flask-sqlalchemy = "*"
2222
flask-marshmallow = "*"
2323
marshmallow-sqlalchemy = "*"
24+
marshmallow = "*"
2425

2526
[requires]
2627
python_version = "3.8"

Pipfile.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

snowflake/controllers/api/response.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
from flask import jsonify
22

33

4-
def bad_request(message):
5-
return 400, jsonify({'message': message})
4+
def error_body(message):
5+
return jsonify({'message': message})
66

77

8-
def not_found():
9-
return 404, jsonify({'message': "Not found"})
8+
def bad_request(message="Bad request"):
9+
return error_body(message), 400
10+
11+
12+
def not_found(message="Not found"):
13+
return error_body(message), 404
14+
15+
16+
def unauthorized(message="Unauthorized"):
17+
return jsonify(message), 403

snowflake/controllers/api/users.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
1-
from flask import Blueprint, request, jsonify
1+
from flask import Blueprint, request
22

3-
from snowflake.models import User
43
from .response import bad_request
4+
from ...models import User
5+
from ...schemas.user import UserSchema
56

67
blueprint = Blueprint('users', __name__)
78

9+
schema = UserSchema()
10+
811

912
@blueprint.route('/_autocomplete')
10-
def autocomplete_search():
13+
def autocomplete():
1114
term = request.args.get('q')
1215

1316
if term is None:
1417
return bad_request("missing search term 'q'")
1518

1619
users = User.find_by_name_prefix(term)
1720

18-
return jsonify([{
19-
'name': user.name,
20-
'username': user.username,
21-
'avatar': user.profile_pic
22-
} for user in users])
21+
return schema.jsonify(users, many=True)

0 commit comments

Comments
 (0)