Software / code / prosody-modules
Comparison
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 |
comparison
equal
deleted
inserted
replaced
| 5591:680fb3344357 | 5593:04f36a470dca |
|---|---|
| 1 local json = require "util.json" | 1 local json = require "util.json" |
| 2 | 2 |
| 3 module:depends("http") | 3 module:depends("http") |
| 4 local function handle_request(event) | |
| 5 local request = event.request; | |
| 6 (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); | |
| 7 return { | |
| 8 status_code = 200; | |
| 9 headers = { content_type = "application/json" }; | |
| 10 host = module.host; | |
| 11 body = json.encode { | |
| 12 body = request.body; | |
| 13 headers = request.headers; | |
| 14 httpversion = request.httpversion; | |
| 15 id = request.id; | |
| 16 ip = request.ip; | |
| 17 method = request.method; | |
| 18 path = request.path; | |
| 19 secure = request.secure; | |
| 20 url = request.url; | |
| 21 }; | |
| 22 } | |
| 23 end | |
| 24 | |
| 25 local methods = module:get_option_set("http_debug_methods", { "GET"; "HEAD"; "DELETE"; "OPTIONS"; "PATCH"; "POST"; "PUT" }); | |
| 26 local route = {}; | |
| 27 for method in methods do | |
| 28 route[method] = handle_request; | |
| 29 route[method .. " /*"] = handle_request; | |
| 30 end | |
| 31 | |
| 4 module:provides("http", { | 32 module:provides("http", { |
| 5 route = { | 33 route = route; |
| 6 GET = function(event) | 34 }) |
| 7 local request = event.request; | |
| 8 return { | |
| 9 status_code = 200; | |
| 10 headers = { | |
| 11 content_type = "application/json", | |
| 12 }, | |
| 13 body = json.encode { | |
| 14 body = request.body; | |
| 15 headers = request.headers; | |
| 16 httpversion = request.httpversion; | |
| 17 ip = request.ip; | |
| 18 method = request.method; | |
| 19 path = request.path; | |
| 20 secure = request.secure; | |
| 21 url = request.url; | |
| 22 } | |
| 23 } | |
| 24 end; | |
| 25 } | |
| 26 }) |