mirror of
https://github.com/matrix-construct/construct
synced 2024-09-26 18:38:52 +02:00
modules/federation/publicrooms: Implement Federation r0.4.0-15.2 (matrix-org/matrix-doc/#2197).
This commit is contained in:
parent
0eb4401897
commit
9457b1d34b
1 changed files with 24 additions and 2 deletions
|
@ -47,14 +47,25 @@ get_method
|
|||
}
|
||||
};
|
||||
|
||||
m::resource::method
|
||||
post_method
|
||||
{
|
||||
publicrooms_resource, "POST", handle_get,
|
||||
{
|
||||
post_method.VERIFY_ORIGIN
|
||||
}
|
||||
};
|
||||
|
||||
m::resource::response
|
||||
handle_get(client &client,
|
||||
const m::resource::request &request)
|
||||
{
|
||||
char sincebuf[m::room::id::buf::SIZE];
|
||||
const string_view &since
|
||||
const json::string &since
|
||||
{
|
||||
url::decode(sincebuf, request.query["since"])
|
||||
request.query["since"]?
|
||||
url::decode(sincebuf, request.query["since"]):
|
||||
request["since"]
|
||||
};
|
||||
|
||||
if(since && !valid(m::id::ROOM, since))
|
||||
|
@ -81,6 +92,16 @@ handle_get(client &client,
|
|||
request.get<bool>("include_all_networks", false)
|
||||
};
|
||||
|
||||
const json::object &filter
|
||||
{
|
||||
request["filter"]
|
||||
};
|
||||
|
||||
const json::string &search_term
|
||||
{
|
||||
filter["generic_search_term"]
|
||||
};
|
||||
|
||||
m::resource::response::chunked response
|
||||
{
|
||||
client, http::OK
|
||||
|
@ -97,6 +118,7 @@ handle_get(client &client,
|
|||
opts.server = my_host();
|
||||
opts.lower_bound = true;
|
||||
opts.room_id = since;
|
||||
opts.search_term = search_term;
|
||||
|
||||
size_t count{0};
|
||||
m::room::id::buf prev_batch_buf;
|
||||
|
|
Loading…
Reference in a new issue