Use Arc for EventIds in PDUs

Upgrades Ruma again to make this work.
This commit is contained in:
Jonas Platte 2021-11-27 17:44:52 +01:00
parent 11a21fc136
commit 34d3f74f36
No known key found for this signature in database
GPG key ID: CC154DE0E30B7C67
11 changed files with 81 additions and 76 deletions

View file

@ -306,6 +306,7 @@ pub async fn register_route(
third_party_invite: None,
blurhash: None,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,
@ -463,6 +464,7 @@ pub async fn register_route(
third_party_invite: None,
blurhash: None,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,
@ -485,6 +487,7 @@ pub async fn register_route(
third_party_invite: None,
blurhash: None,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,
@ -701,6 +704,7 @@ pub async fn deactivate_route(
third_party_invite: None,
blurhash: None,
reason: None,
join_authorized_via_users_server: None,
};
let mutex_state = Arc::clone(

View file

@ -286,6 +286,7 @@ pub async fn ban_user_route(
third_party_invite: None,
blurhash: db.users.blurhash(&body.user_id)?,
reason: None,
join_authorized_via_users_server: None,
}),
|event| {
serde_json::from_str(event.content.get())
@ -604,6 +605,7 @@ async fn join_room_by_id_helper(
third_party_invite: None,
blurhash: db.users.blurhash(sender_user)?,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
);
@ -757,6 +759,7 @@ async fn join_room_by_id_helper(
third_party_invite: None,
blurhash: db.users.blurhash(sender_user)?,
reason: None,
join_authorized_via_users_server: None,
};
db.rooms.build_and_append_pdu(
@ -906,6 +909,7 @@ pub(crate) async fn invite_helper<'a>(
third_party_invite: None,
blurhash: None,
reason: None,
join_authorized_via_users_server: None,
})
.expect("member event is valid value");
@ -939,7 +943,7 @@ pub(crate) async fn invite_helper<'a>(
}
let pdu = PduEvent {
event_id: ruma::event_id!("$thiswillbefilledinlater").to_owned(),
event_id: ruma::event_id!("$thiswillbefilledinlater").into(),
room_id: room_id.to_owned(),
sender: sender_user.to_owned(),
origin_server_ts: utils::millis_since_unix_epoch()
@ -1117,6 +1121,7 @@ pub(crate) async fn invite_helper<'a>(
third_party_invite: None,
blurhash: db.users.blurhash(user_id)?,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,

View file

@ -98,7 +98,7 @@ pub async fn send_message_event_route(
db.flush()?;
Ok(send_message_event::Response::new(event_id).into())
Ok(send_message_event::Response::new((*event_id).to_owned()).into())
}
/// # `GET /_matrix/client/r0/rooms/{roomId}/messages`

View file

@ -25,6 +25,7 @@ pub async fn redact_event_route(
body: Ruma<redact_event::Request<'_>>,
) -> ConduitResult<redact_event::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let body = body.body;
let mutex_state = Arc::clone(
db.globals
@ -45,7 +46,7 @@ pub async fn redact_event_route(
.expect("event is valid, we just created it"),
unsigned: None,
state_key: None,
redacts: Some(body.event_id.clone()),
redacts: Some(body.event_id.into()),
},
sender_user,
&body.room_id,
@ -57,5 +58,6 @@ pub async fn redact_event_route(
db.flush()?;
let event_id = (*event_id).to_owned();
Ok(redact_event::Response { event_id }.into())
}

View file

@ -22,6 +22,7 @@ use ruma::{
},
EventType,
},
int,
serde::{CanonicalJsonObject, JsonObject},
RoomAliasId, RoomId, RoomVersionId,
};
@ -195,6 +196,7 @@ pub async fn create_room_route(
third_party_invite: None,
blurhash: db.users.blurhash(sender_user)?,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,
@ -220,11 +222,11 @@ pub async fn create_room_route(
});
let mut users = BTreeMap::new();
users.insert(sender_user.clone(), 100.into());
users.insert(sender_user.clone(), int!(100));
if preset == create_room::RoomPreset::TrustedPrivateChat {
for invite_ in &body.invite {
users.insert(invite_.clone(), 100.into());
users.insert(invite_.clone(), int!(100));
}
}
@ -569,7 +571,7 @@ pub async fn upgrade_room_route(
// Use the m.room.tombstone event as the predecessor
let predecessor = Some(ruma::events::room::create::PreviousRoom::new(
body.room_id.clone(),
tombstone_event_id,
(*tombstone_event_id).to_owned(),
));
// Send a m.room.create event containing a predecessor field and the applicable room_version
@ -633,6 +635,7 @@ pub async fn upgrade_room_route(
third_party_invite: None,
blurhash: db.users.blurhash(sender_user)?,
reason: None,
join_authorized_via_users_server: None,
})
.expect("event is valid, we just created it"),
unsigned: None,
@ -697,10 +700,7 @@ pub async fn upgrade_room_route(
.map_err(|_| Error::bad_database("Invalid room event in database."))?;
// Setting events_default and invite to the greater of 50 and users_default + 1
let new_level = max(
50.into(),
power_levels_event_content.users_default + 1.into(),
);
let new_level = max(int!(50), power_levels_event_content.users_default + int!(1));
power_levels_event_content.events_default = new_level;
power_levels_event_content.invite = new_level;

View file

@ -52,6 +52,7 @@ pub async fn send_state_event_for_key_route(
db.flush()?;
let event_id = (*event_id).to_owned();
Ok(send_state_event::Response { event_id }.into())
}
@ -93,6 +94,7 @@ pub async fn send_state_event_for_empty_key_route(
db.flush()?;
let event_id = (*event_id).to_owned();
Ok(send_state_event::Response { event_id }.into())
}
@ -267,7 +269,7 @@ async fn send_state_event_for_key_helper(
event_type: EventType,
json: &Raw<AnyStateEventContent>,
state_key: String,
) -> Result<Box<EventId>> {
) -> Result<Arc<EventId>> {
let sender_user = sender;
// TODO: Review this check, error if event is unparsable, use event type, allow alias if it