aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views
diff options
context:
space:
mode:
Diffstat (limited to 'pysite/views')
-rw-r--r--pysite/views/api/bot/tag.py8
-rw-r--r--pysite/views/api/bot/user.py36
2 files changed, 21 insertions, 23 deletions
diff --git a/pysite/views/api/bot/tag.py b/pysite/views/api/bot/tag.py
index b2ce145b..363f98fe 100644
--- a/pysite/views/api/bot/tag.py
+++ b/pysite/views/api/bot/tag.py
@@ -4,7 +4,7 @@ from flask import jsonify, request
from pysite.base_route import APIView, DBViewMixin
from pysite.constants import ErrorCodes
-from pysite.decorators import valid_api_key
+from pysite.decorators import api_key
class TagView(APIView, DBViewMixin):
@@ -13,7 +13,7 @@ class TagView(APIView, DBViewMixin):
table_name = "tag"
table_primary_key = "tag_name"
- @valid_api_key
+ @api_key
def get(self):
"""
Data must be provided as params,
@@ -29,7 +29,7 @@ class TagView(APIView, DBViewMixin):
return jsonify(data)
- @valid_api_key
+ @api_key
def post(self):
"""
Data must be provided as JSON.
@@ -51,6 +51,6 @@ class TagView(APIView, DBViewMixin):
}
)
else:
- return self.error(ErrorCodes.missing_parameters)
+ return self.error(ErrorCodes.incorrect_parameters)
return jsonify({"success": True})
diff --git a/pysite/views/api/bot/user.py b/pysite/views/api/bot/user.py
index aad58e05..5e9dc444 100644
--- a/pysite/views/api/bot/user.py
+++ b/pysite/views/api/bot/user.py
@@ -1,10 +1,20 @@
# coding=utf-8
-from flask import jsonify, request
+from flask import jsonify
+
+from schema import Schema
from pysite.base_route import APIView, DBViewMixin
-from pysite.constants import ErrorCodes
-from pysite.decorators import valid_api_key
+from pysite.constants import ValidationTypes
+from pysite.decorators import api_key, api_params
+
+
+SCHEMA = Schema([
+ {
+ "user_id": int,
+ "role": int
+ }
+])
REQUIRED_KEYS = [
"user_id",
@@ -18,24 +28,12 @@ class UserView(APIView, DBViewMixin):
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]
-
+ @api_key
+ @api_params(schema=SCHEMA, validation_type=ValidationTypes.json)
+ def post(self, 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"],
- },
+ self.table_name, user,
conflict="update",
durability="soft"
)