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
|
m::resource::response
|
||||||
handle_get(client &client,
|
handle_get(client &client,
|
||||||
const m::resource::request &request)
|
const m::resource::request &request)
|
||||||
{
|
{
|
||||||
char sincebuf[m::room::id::buf::SIZE];
|
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))
|
if(since && !valid(m::id::ROOM, since))
|
||||||
|
@ -81,6 +92,16 @@ handle_get(client &client,
|
||||||
request.get<bool>("include_all_networks", false)
|
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
|
m::resource::response::chunked response
|
||||||
{
|
{
|
||||||
client, http::OK
|
client, http::OK
|
||||||
|
@ -97,6 +118,7 @@ handle_get(client &client,
|
||||||
opts.server = my_host();
|
opts.server = my_host();
|
||||||
opts.lower_bound = true;
|
opts.lower_bound = true;
|
||||||
opts.room_id = since;
|
opts.room_id = since;
|
||||||
|
opts.search_term = search_term;
|
||||||
|
|
||||||
size_t count{0};
|
size_t count{0};
|
||||||
m::room::id::buf prev_batch_buf;
|
m::room::id::buf prev_batch_buf;
|
||||||
|
|
Loading…
Reference in a new issue