mirror of
https://github.com/matrix-construct/construct
synced 2024-06-10 14:08:56 +02:00
ircd:Ⓜ️:v1::user::keys::query: Add another convenient request composer.
This commit is contained in:
parent
d083d09e03
commit
dd7e31806d
|
@ -23,6 +23,7 @@ struct ircd::m::v1::user::keys::query
|
|||
using opts = v1::user::opts;
|
||||
using devices = vector_view<const string_view>;
|
||||
using user_devices = std::pair<m::user::id, devices>;
|
||||
using user_devices_map = std::map<m::user::id, json::array>;
|
||||
|
||||
explicit operator json::object() const
|
||||
{
|
||||
|
@ -35,6 +36,10 @@ struct ircd::m::v1::user::keys::query
|
|||
const mutable_buffer &,
|
||||
opts);
|
||||
|
||||
query(const user_devices_map &,
|
||||
const mutable_buffer &,
|
||||
opts);
|
||||
|
||||
query(const vector_view<const user_devices> &,
|
||||
const mutable_buffer &,
|
||||
opts);
|
||||
|
|
30
ircd/m_v1.cc
30
ircd/m_v1.cc
|
@ -921,6 +921,36 @@ ircd::m::v1::user::keys::query::query(const vector_view<const user_devices> &v,
|
|||
};
|
||||
}
|
||||
|
||||
ircd::m::v1::user::keys::query::query(const user_devices_map &map,
|
||||
const mutable_buffer &buf,
|
||||
opts opts)
|
||||
{
|
||||
json::stack out{buf};
|
||||
{
|
||||
json::stack::object top{out};
|
||||
json::stack::object device_keys
|
||||
{
|
||||
top, "device_keys"
|
||||
};
|
||||
|
||||
for(const auto &p : map)
|
||||
json::stack::member user
|
||||
{
|
||||
device_keys, p.first, p.second
|
||||
};
|
||||
}
|
||||
|
||||
const json::object &content
|
||||
{
|
||||
out.completed()
|
||||
};
|
||||
|
||||
new (this) query
|
||||
{
|
||||
content, buf + size(string_view(content)), std::move(opts)
|
||||
};
|
||||
}
|
||||
|
||||
ircd::m::v1::user::keys::query::query(const json::object &content,
|
||||
const mutable_buffer &buf,
|
||||
opts opts)
|
||||
|
|
Loading…
Reference in a new issue