Split append_pdu -> append_pdu and build_and_append
Move all state event appending to append_state_pdu.
This commit is contained in:
@@ -354,7 +354,7 @@ pub fn deactivate_route(
|
||||
third_party_invite: None,
|
||||
};
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
use super::State;
|
||||
use crate::{
|
||||
client_server, pdu::PduBuilder, server_server, utils, ConduitResult, Database, Error, Ruma,
|
||||
client_server,
|
||||
pdu::{PduBuilder, PduEvent},
|
||||
server_server, utils, ConduitResult, Database, Error, Ruma,
|
||||
};
|
||||
use ruma::{
|
||||
api::{
|
||||
@@ -142,24 +144,9 @@ pub async fn join_room_by_id_route(
|
||||
Error::Conflict("Found event_id in sorted events that is not in resolved state")
|
||||
})?;
|
||||
|
||||
db.rooms.append_pdu(
|
||||
PduBuilder {
|
||||
room_id: pdu.room_id().unwrap_or(&body.room_id).clone(),
|
||||
sender: pdu.sender().clone(),
|
||||
event_type: pdu.kind(),
|
||||
content: pdu.content().clone(),
|
||||
unsigned: Some(
|
||||
pdu.unsigned()
|
||||
.iter()
|
||||
.map(|(k, v)| (k.clone(), v.clone()))
|
||||
.collect(),
|
||||
),
|
||||
state_key: pdu.state_key(),
|
||||
redacts: pdu.redacts().cloned(),
|
||||
},
|
||||
&db.globals,
|
||||
&db.account_data,
|
||||
)?;
|
||||
// We do not rebuild the PDU in this case only insert to DB
|
||||
db.rooms
|
||||
.append_pdu(PduEvent::try_from(pdu)?, &db.globals, &db.account_data)?;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +158,7 @@ pub async fn join_room_by_id_route(
|
||||
third_party_invite: None,
|
||||
};
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -284,7 +271,7 @@ pub fn leave_room_route(
|
||||
|
||||
event.membership = member::MembershipState::Leave;
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -312,7 +299,7 @@ pub fn invite_user_route(
|
||||
let sender_id = body.sender_id.as_ref().expect("user is authenticated");
|
||||
|
||||
if let invite_user::InvitationRecipient::UserId { user_id } = &body.recipient {
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -369,7 +356,7 @@ pub fn kick_user_route(
|
||||
event.membership = ruma::events::room::member::MembershipState::Leave;
|
||||
// TODO: reason
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -424,7 +411,7 @@ pub fn ban_user_route(
|
||||
},
|
||||
)?;
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -470,7 +457,7 @@ pub fn unban_user_route(
|
||||
|
||||
event.membership = ruma::events::room::member::MembershipState::Leave;
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -25,7 +25,7 @@ pub fn send_message_event_route(
|
||||
let mut unsigned = serde_json::Map::new();
|
||||
unsigned.insert("transaction_id".to_owned(), body.txn_id.clone().into());
|
||||
|
||||
let event_id = db.rooms.append_pdu(
|
||||
let event_id = db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -31,7 +31,7 @@ pub fn set_displayname_route(
|
||||
// Send a new membership event and presence update into all joined rooms
|
||||
for room_id in db.rooms.rooms_joined(&sender_id) {
|
||||
let room_id = room_id?;
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -134,7 +134,7 @@ pub fn set_avatar_url_route(
|
||||
// Send a new membership event and presence update into all joined rooms
|
||||
for room_id in db.rooms.rooms_joined(&sender_id) {
|
||||
let room_id = room_id?;
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -18,7 +18,7 @@ pub fn redact_event_route(
|
||||
) -> ConduitResult<redact_event::Response> {
|
||||
let sender_id = body.sender_id.as_ref().expect("user is authenticated");
|
||||
|
||||
let event_id = db.rooms.append_pdu(
|
||||
let event_id = db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -56,7 +56,7 @@ pub fn create_room_route(
|
||||
content.room_version = RoomVersionId::Version6;
|
||||
|
||||
// 1. The room create event
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -71,7 +71,7 @@ pub fn create_room_route(
|
||||
)?;
|
||||
|
||||
// 2. Let the room creator join
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -120,7 +120,7 @@ pub fn create_room_route(
|
||||
})
|
||||
.expect("event is valid, we just created it")
|
||||
};
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -144,7 +144,7 @@ pub fn create_room_route(
|
||||
});
|
||||
|
||||
// 4.1 Join Rules
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -169,7 +169,7 @@ pub fn create_room_route(
|
||||
)?;
|
||||
|
||||
// 4.2 History Visibility
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -187,7 +187,7 @@ pub fn create_room_route(
|
||||
)?;
|
||||
|
||||
// 4.3 Guest Access
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -224,7 +224,7 @@ pub fn create_room_route(
|
||||
continue;
|
||||
}
|
||||
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -243,7 +243,7 @@ pub fn create_room_route(
|
||||
|
||||
// 6. Events implied by name and topic
|
||||
if let Some(name) = &body.name {
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -264,7 +264,7 @@ pub fn create_room_route(
|
||||
}
|
||||
|
||||
if let Some(topic) = &body.topic {
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
@@ -284,7 +284,7 @@ pub fn create_room_route(
|
||||
|
||||
// 7. Events implied by invite (and TODO: invite_3pid)
|
||||
for user in &body.invite {
|
||||
db.rooms.append_pdu(
|
||||
db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
@@ -57,7 +57,7 @@ pub fn send_state_event_for_key_route(
|
||||
}
|
||||
}
|
||||
|
||||
let event_id = db.rooms.append_pdu(
|
||||
let event_id = db.rooms.build_and_append_pdu(
|
||||
PduBuilder {
|
||||
room_id: body.room_id.clone(),
|
||||
sender: sender_id.clone(),
|
||||
|
||||
Reference in New Issue
Block a user