mirror of
https://github.com/matrix-construct/construct
synced 2024-10-04 14:48:56 +02:00
modules/client/sync/rooms/timeline: For non-longpoll, attempt to query transaction_id.
This commit is contained in:
parent
d30e053e42
commit
85b66e2d55
1 changed files with 34 additions and 0 deletions
|
@ -16,6 +16,7 @@ IRCD_MODULE
|
|||
|
||||
namespace ircd::m::sync
|
||||
{
|
||||
static void _room_timeline_append_txnid(data &, json::stack::object &, const m::event &);
|
||||
static void _room_timeline_append(data &, json::stack::array &, const m::event::idx &, const m::event &);
|
||||
static event::id::buf _room_timeline_polylog_events(data &, const m::room &, bool &, bool &);
|
||||
static bool room_timeline_polylog(data &);
|
||||
|
@ -170,9 +171,42 @@ ircd::m::sync::_room_timeline_append(data &data,
|
|||
}
|
||||
};
|
||||
|
||||
_room_timeline_append_txnid(data, unsigned_, event);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ircd::m::sync::_room_timeline_append_txnid(data &data,
|
||||
json::stack::object &unsigned_,
|
||||
const m::event &event)
|
||||
{
|
||||
if(data.client_txnid)
|
||||
{
|
||||
json::stack::member
|
||||
{
|
||||
unsigned_, "transaction_id", data.client_txnid
|
||||
};
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(json::get<"sender"_>(event) != data.user.user_id)
|
||||
return;
|
||||
|
||||
const auto txnid_idx
|
||||
{
|
||||
data.user_room.get(std::nothrow, "ircd.client.txnid", at<"event_id"_>(event))
|
||||
};
|
||||
|
||||
if(!txnid_idx)
|
||||
return;
|
||||
|
||||
m::get(std::nothrow, txnid_idx, "content", [&unsigned_]
|
||||
(const json::object &content)
|
||||
{
|
||||
json::stack::member
|
||||
{
|
||||
unsigned_, "transaction_id", unquote(content.get("transaction_id"))
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue