aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pysite/views/api/bot/user.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/pysite/views/api/bot/user.py b/pysite/views/api/bot/user.py
new file mode 100644
index 00000000..aad58e05
--- /dev/null
+++ b/pysite/views/api/bot/user.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+
+from flask import jsonify, request
+
+from pysite.base_route import APIView, DBViewMixin
+from pysite.constants import ErrorCodes
+from pysite.decorators import valid_api_key
+
+REQUIRED_KEYS = [
+ "user_id",
+ "role"
+]
+
+
+class UserView(APIView, DBViewMixin):
+ path = "/user"
+ name = "user"
+ table_name = "users"
+ table_primary_key = "user_id"
+
+ @valid_api_key
+ def post(self):
+ data = request.get_json()
+
+ if not isinstance(data, list):
+ data = [data]
+
+ for user in data:
+ if not all(k in user for k in REQUIRED_KEYS):
+ print(user)
+ return self.error(ErrorCodes.missing_parameters)
+
+ self.db.insert(
+ self.table_name,
+ {
+ "user_id": user["user_id"],
+ "role": user["role"],
+ },
+ conflict="update",
+ durability="soft"
+ )
+
+ self.db.sync(self.table_name)
+
+ return jsonify({"success": True})