0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-10-03 06:08:52 +02:00

modules/client/rooms: 6.4.1/6.4.2 PUT state.

This commit is contained in:
Jason Volk 2018-02-16 12:43:30 -08:00
parent b121c4377b
commit 38db46aad4
3 changed files with 44 additions and 0 deletions

View file

@ -96,6 +96,9 @@ put_rooms(client &client, const resource::request &request)
if(cmd == "send")
return put__send(client, request, room_id);
if(cmd == "state")
return put__state(client, request, room_id);
if(cmd == "typing")
return put__typing(client, request, room_id);

View file

@ -30,6 +30,11 @@ get__state(ircd::client &client,
const ircd::resource::request &request,
const ircd::m::room::id &room_id);
ircd::resource::response
put__state(ircd::client &client,
const ircd::resource::request &request,
const ircd::m::room::id &room_id);
///////////////////////////////////////////////////////////////////////////////
//
// members.cc

View file

@ -133,3 +133,39 @@ get__state(client &client,
return get__state(client, request, room_id, event_id);
}
resource::response
put__state(client &client,
const resource::request &request,
const m::room::id &room_id)
{
char type_buf[uint(256 * 1.34 + 1)];
const string_view &type
{
url::decode(request.parv[2], type_buf)
};
char skey_buf[uint(256 * 1.34 + 1)];
const string_view &state_key
{
url::decode(request.parv[3], skey_buf)
};
const json::object &content
{
request.content
};
const auto event_id
{
m::send(room_id, request.user_id, type, state_key, content)
};
return resource::response
{
client, json::members
{
{ "event_id", event_id }
}
};
}