Software /
code /
prosody-modules
Diff
mod_http_status/mod_http_status.lua @ 5161:6af2d74daa15
mod_http_status: Report module statuses
Uncommitted code from 2021
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 30 Jan 2023 00:48:12 +0100 |
child | 5702:e274431bf4ce |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_http_status/mod_http_status.lua Mon Jan 30 00:48:12 2023 +0100 @@ -0,0 +1,36 @@ +module:set_global(); + +local json = require "util.json"; +local datetime = require "util.datetime".datetime; + +local modulemanager = require "core.modulemanager"; + +module:provides("http", { + route = { + GET = function(event) + local request, response = event.request, event.response; + response.headers.content_type = "application/json"; + + local resp = { ["*"] = true }; + + for host in pairs(prosody.hosts) do + resp[host] = true; + end + + for host in pairs(resp) do + local hostmods = {}; + local mods = modulemanager.get_modules(host); + for mod_name, mod in pairs(mods) do + hostmods[mod_name] = { + type = mod.module.status_type; + message = mod.module.status_message; + time = datetime(math.floor(mod.module.status_time)); + }; + end + resp[host] = hostmods; + end + + return json.encode(resp); + end; + }; +});