diff options
Diffstat (limited to 'api/user/preferences.py')
-rw-r--r-- | api/user/preferences.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/api/user/preferences.py b/api/user/preferences.py index 5d46f5f..bfbfe66 100644 --- a/api/user/preferences.py +++ b/api/user/preferences.py @@ -3,10 +3,13 @@ from db import cursor from auth.login_token import token_login import json +def format_preferences(preferences): #TODO: remove excess properties (create preferences class?) + return json.dumps(preferences) or "" + preferences = Blueprint('preferences', __name__) -@preferences.route('/preferences') -def index(): +@preferences.route('/preferences', methods = ["GET"]) +def get_preferences(): data = request.get_json() token = request.cookies.get("token") or "" @@ -19,5 +22,25 @@ def index(): user_prefs = cursor.execute("select preferences from users where user_id = ?", [login]).fetchone() return { "preferences": json.loads(user_prefs[0]) }, 200 +@preferences.route('/preferences', methods = ["POST"]) +def index(): + data = request.get_json() + + new_preferences = data.get("newPreferences") or "" + token = request.cookies.get("token") or "" + + if not token: return "", 401 + login = token_login(token) or "" + + if not login: return "", 403 + + formatted_json = format_preferences(new_preferences) + if not formatted_json: return "", 400 + + cursor.execute("update users set preferences = ? where user_id = ?", [formatted_json, login]) + connection.commit() + + return "", 200 + dynamic_route = ["/user", preferences] |