From 741c2a95e6a4b8473f591d38d6c2aabfaf18ed40 Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Wed, 14 May 2025 13:18:36 +0200 Subject: [PATCH] now errors are sent with json form instead of html --- src/server.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/server.py b/src/server.py index bd31b06..ddfdd11 100644 --- a/src/server.py +++ b/src/server.py @@ -5,7 +5,7 @@ from flask_socketio import SocketIO from routes.index import router as index_router from routes.answers import router as answers_router from routes.datasets import router as datasets_router - +from werkzeug.exceptions import HTTPException import os app = Flask(__name__, static_folder='../public', static_url_path='/') @@ -17,6 +17,22 @@ app.register_blueprint(answers_router) # mounts at '/answers' app.register_blueprint(datasets_router) # mounts at '/datasets' +@app.errorhandler(Exception) +def handle_exception(e): + if isinstance(e, HTTPException): + response = { + "error": e.name.lower().replace(" ", "_"), # e.g. "not_found" + "message": e.description, + } + return app.json.response(response), e.code or 500 + + app.logger.exception(e) + return ( + app.json.response({"error": "internal_server_error", "message": str(e)}), + 500, + ) + + def init_socketio(app): socketio = SocketIO(app, cors_allowed_origins='*')