Comparison

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
comparison
equal deleted inserted replaced
5160:8474a3b80200 5161:6af2d74daa15
1 module:set_global();
2
3 local json = require "util.json";
4 local datetime = require "util.datetime".datetime;
5
6 local modulemanager = require "core.modulemanager";
7
8 module:provides("http", {
9 route = {
10 GET = function(event)
11 local request, response = event.request, event.response;
12 response.headers.content_type = "application/json";
13
14 local resp = { ["*"] = true };
15
16 for host in pairs(prosody.hosts) do
17 resp[host] = true;
18 end
19
20 for host in pairs(resp) do
21 local hostmods = {};
22 local mods = modulemanager.get_modules(host);
23 for mod_name, mod in pairs(mods) do
24 hostmods[mod_name] = {
25 type = mod.module.status_type;
26 message = mod.module.status_message;
27 time = datetime(math.floor(mod.module.status_time));
28 };
29 end
30 resp[host] = hostmods;
31 end
32
33 return json.encode(resp);
34 end;
35 };
36 });