aboutsummaryrefslogtreecommitdiff
path: root/api/user/preferences.py
diff options
context:
space:
mode:
authorlonkaars <l.leblansch@gmail.com>2021-03-12 08:55:40 +0100
committerlonkaars <l.leblansch@gmail.com>2021-03-12 08:55:40 +0100
commit599108b21979039117ffe1de1817e71644a20fb4 (patch)
tree3a123627478a5280aeaf65910cbbe6b767f2987f /api/user/preferences.py
parentb34662346733ded378b31d8b1ba1e8b2953ec49a (diff)
cleaner endpoint names
Diffstat (limited to 'api/user/preferences.py')
-rw-r--r--api/user/preferences.py27
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]