mod_rest: Hide JSON error behind a flag
It's a bit overzealous and returns JSON errors even if you ask for HTML.
--- a/mod_rest/mod_rest.lua Sat Feb 01 00:38:10 2020 +0100
+++ b/mod_rest/mod_rest.lua Mon Feb 03 23:09:38 2020 +0100
@@ -315,17 +315,19 @@
end
end
-local http_server = require "net.http.server";
-module:hook_object_event(http_server, "http-error", function (event)
- local request, response = event.request, event.response;
- if true or decide_type(request and request.headers.accept or "") == "application/json" then
- if response then
- response.headers.content_type = "application/json";
+if module:get_option_boolean("rest_json_errors", false) then
+ local http_server = require "net.http.server";
+ module:hook_object_event(http_server, "http-error", function (event)
+ local request, response = event.request, event.response;
+ if true or decide_type(request and request.headers.accept or "") == "application/json" then
+ if response then
+ response.headers.content_type = "application/json";
+ end
+ return json.encode({
+ type = "error",
+ error = event.error,
+ code = event.code,
+ });
end
- return json.encode({
- type = "error",
- error = event.error,
- code = event.code,
- });
- end
-end, 10);
+ end, 10);
+end