From 7ae7c0f50d5cff27eb6a708bb15796bb793fe089 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Tue, 6 Aug 2024 12:55:07 -0400 Subject: [PATCH] Add human readable error for getting server files --- .../web/routes/api/crafty/imports/index.py | 22 ++++++++++++++----- app/translations/en_EN.json | 5 +++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/classes/web/routes/api/crafty/imports/index.py b/app/classes/web/routes/api/crafty/imports/index.py index 2aca2fa9..47b19b81 100644 --- a/app/classes/web/routes/api/crafty/imports/index.py +++ b/app/classes/web/routes/api/crafty/imports/index.py @@ -13,10 +13,14 @@ logger = logging.getLogger(__name__) files_get_schema = { "type": "object", "properties": { - "page": {"type": "string", "minLength": 1}, - "folder": {"type": "string"}, - "upload": {"type": "boolean", "default": "False"}, - "unzip": {"type": "boolean", "default": "True"}, + "page": { + "type": "string", + "minLength": 1, + "error": "filesPageLen", + }, + "folder": {"type": "string", "error": "typeString"}, + "upload": {"type": "boolean", "default": "False", "error": "typeBool"}, + "unzip": {"type": "boolean", "default": "True", "error": "typeBool"}, }, "additionalProperties": False, "minProperties": 1, @@ -47,13 +51,19 @@ class ApiImportFilesIndexHandler(BaseApiHandler): ) try: validate(data, files_get_schema) - except ValidationError as e: + except ValidationError as why: + offending_key = why.path[0] if why.path else None + err = f"""{self.translator.translate( + "validators", + why.schema.get("error"), + self.controller.users.get_user_lang_by_id(auth_data[4]["user_id"]), + )} {offending_key}""" return self.finish_json( 400, { "status": "error", "error": "INVALID_JSON_SCHEMA", - "error_data": str(e), + "error_data": f"{str(err)}", }, ) # TODO: limit some columns for specific permissions? diff --git a/app/translations/en_EN.json b/app/translations/en_EN.json index 0562c0a0..50ab88c5 100644 --- a/app/translations/en_EN.json +++ b/app/translations/en_EN.json @@ -668,11 +668,12 @@ "uses": "Number of uses allowed (-1==No Limit)" }, "validators": { + "filesPageLen": "Length must be greater than 1 for property ", + "passLength": "Password Too Short. Minimum Length: 8", "typeBool": "Type error: True or False required for ", "typeInteger": "Type error: Integer required for ", "typeList": "Type error: List required for ", - "typeString": "Type error: String required for ", - "passLength": "Password Too Short. Minimum Length: 8" + "typeString": "Type error: String required for " }, "webhooks": { "areYouSureDel": "Are you sure you want to delete this webhook?",