diff --git a/georeal/server.py b/georeal/server.py index 6fdfa14..aeaf8b3 100644 --- a/georeal/server.py +++ b/georeal/server.py @@ -210,6 +210,39 @@ def get_image(filename: str) -> tuple[Response, int]: return send_file(image_path, mimetype="image/jpeg"), 200 +@app.errorhandler(400) +def bad_request(error) -> tuple[Response, int]: + logger.error("Got 400 error: %s", error) + + return jsonify( + { + "error": "Bad Request", + "message": "The server could not understand the request due to invalid syntax.", + } + ), 400 + + +@app.errorhandler(404) +def not_found(error) -> tuple[Response, int]: + logger.warning("Got 404 for URL %s: %s", request.url, error) + + return jsonify( + {"error": "Not Found", "message": "This resource does not exist"} + ), 404 + + +@app.errorhandler(500) +def internal_error(error) -> tuple[Response, int]: + logger.error("Got 500 error: %s", error) + + return jsonify( + { + "error": "Internal Server Error", + "message": "An internal server error occurred", + } + ), 500 + + if __name__ == "__main__": logger.info( "Starting GeoReal server on %s:%d... in debug=%s mode",