Software / code / prosody-modules
Diff
mod_http_debug/mod_http_debug.lua @ 5593:04f36a470dca
Update from upstream
| author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
|---|---|
| date | Sun, 09 Jul 2023 01:31:29 +0700 |
| parent | 5492:b6af4d1ff8c1 |
line wrap: on
line diff
--- a/mod_http_debug/mod_http_debug.lua Fri May 26 02:15:45 2023 +0700 +++ b/mod_http_debug/mod_http_debug.lua Sun Jul 09 01:31:29 2023 +0700 @@ -1,26 +1,34 @@ local json = require "util.json" module:depends("http") +local function handle_request(event) + local request = event.request; + (request.log or module._log)("debug", "%s -- %s %q HTTP/%s -- %q -- %s", request.ip, request.method, request.url, request.httpversion, request.headers, request.body); + return { + status_code = 200; + headers = { content_type = "application/json" }; + host = module.host; + body = json.encode { + body = request.body; + headers = request.headers; + httpversion = request.httpversion; + id = request.id; + ip = request.ip; + method = request.method; + path = request.path; + secure = request.secure; + url = request.url; + }; + } +end + +local methods = module:get_option_set("http_debug_methods", { "GET"; "HEAD"; "DELETE"; "OPTIONS"; "PATCH"; "POST"; "PUT" }); +local route = {}; +for method in methods do + route[method] = handle_request; + route[method .. " /*"] = handle_request; +end + module:provides("http", { - route = { - GET = function(event) - local request = event.request; - return { - status_code = 200; - headers = { - content_type = "application/json", - }, - body = json.encode { - body = request.body; - headers = request.headers; - httpversion = request.httpversion; - ip = request.ip; - method = request.method; - path = request.path; - secure = request.secure; - url = request.url; - } - } - end; - } - }) + route = route; +})