0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-05-15 09:31:46 +02:00

modules/admin/users: Implement GET /pushers.

This commit is contained in:
Jason Volk 2023-03-02 20:49:17 -08:00
parent 35e1ba3321
commit fe1dfbce9b

View file

@ -10,6 +10,7 @@
namespace ircd::m::admin
{
static resource::response handle_get_pushers(client &, const resource::request &, const user::id &);
static resource::response handle_get_devices(client &, const resource::request &, const user::id &);
static resource::response handle_get_account_data(client &, const resource::request &, const user::id &);
static resource::response handle_get_joined_rooms(client &, const resource::request &, const user::id &);
@ -83,6 +84,9 @@ ircd::m::admin::handle_get(client &client,
if(cmd == "devices")
return handle_get_devices(client, request, user_id);
if(cmd == "pushers")
return handle_get_pushers(client, request, user_id);
throw m::NOT_FOUND
{
"/admin/users command not found"
@ -281,3 +285,41 @@ ircd::m::admin::handle_get_devices(client &client,
return response;
}
ircd::m::resource::response
ircd::m::admin::handle_get_pushers(client &client,
const resource::request &request,
const user::id &user_id)
{
const m::user::pushers pushers
{
user_id
};
m::resource::response::chunked::json response
{
client, http::OK
};
json::stack::member
{
response, "total", json::value
{
long(pushers.count())
}
};
json::stack::array array
{
response, "pushers"
};
pushers.for_each([&array]
(const auto &, const auto &key, const json::object &pusher)
{
array.append(pusher);
return true;
});
return response;
}