diff options
Diffstat (limited to 'pysite/views/api/bot/settings.py')
-rw-r--r-- | pysite/views/api/bot/settings.py | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/pysite/views/api/bot/settings.py b/pysite/views/api/bot/settings.py deleted file mode 100644 index a633a68a..00000000 --- a/pysite/views/api/bot/settings.py +++ /dev/null @@ -1,56 +0,0 @@ -from flask import jsonify -from schema import Optional, Schema - -from pysite.base_route import APIView -from pysite.constants import ValidationTypes -from pysite.decorators import api_key, api_params -from pysite.mixins import DBMixin - -# todo: type safety -SETTINGS_KEYS_DEFAULTS = { - "defcon_enabled": False, - "defcon_days": 1 -} - -GET_SCHEMA = Schema({ - Optional("keys"): str -}) - - -def settings_schema(): - schema_dict = {Optional(key): type(SETTINGS_KEYS_DEFAULTS[key]) for key in SETTINGS_KEYS_DEFAULTS.keys()} - return Schema(schema_dict) - - -class ServerSettingsView(APIView, DBMixin): - path = "/bot/settings" - name = "bot.settings" - - @api_key - @api_params(schema=GET_SCHEMA, validation_type=ValidationTypes.params) - def get(self, params=None): - keys_raw = None - if params: - keys_raw = params.get("keys") - - keys = filter(lambda key: key in SETTINGS_KEYS_DEFAULTS, - keys_raw.split(",")) if keys_raw else SETTINGS_KEYS_DEFAULTS.keys() - - result = {key: (self.db.get("bot_settings", key) or {}).get("value") or SETTINGS_KEYS_DEFAULTS[key] for key in - keys} - return jsonify(result) - - @api_key - @api_params(schema=settings_schema(), validation_type=ValidationTypes.json) - def put(self, json_data): - # update in database - - for key, value in json_data.items(): - self.db.insert("bot_settings", { - "key": key, - "value": value - }, conflict="update") - - return jsonify({ - "success": True - }) |