summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Platte <jplatte+git@posteo.de>2022-12-14 13:09:10 +0100
committerJonas Platte <jplatte+git@posteo.de>2022-12-16 11:57:32 +0100
commitd39ce1401d773a0b68515b8ae1a434f37abfc650 (patch)
tree44350155e1e5e3383d686cae91627ddffd141d2d
parent7fd5b22e3b03cd6f10bb40b1dda05a3815ee25b2 (diff)
downloadconduit-d39ce1401d773a0b68515b8ae1a434f37abfc650.zip
WIP: Upgrade Ruma
-rw-r--r--Cargo.lock22
-rw-r--r--Cargo.toml2
-rw-r--r--src/api/client_server/account.rs14
-rw-r--r--src/api/client_server/alias.rs26
-rw-r--r--src/api/client_server/backup.rs24
-rw-r--r--src/api/client_server/capabilities.rs2
-rw-r--r--src/api/client_server/config.rs8
-rw-r--r--src/api/client_server/context.rs2
-rw-r--r--src/api/client_server/device.rs8
-rw-r--r--src/api/client_server/directory.rs25
-rw-r--r--src/api/client_server/filter.rs4
-rw-r--r--src/api/client_server/keys.rs8
-rw-r--r--src/api/client_server/media.rs20
-rw-r--r--src/api/client_server/membership.rs75
-rw-r--r--src/api/client_server/message.rs4
-rw-r--r--src/api/client_server/presence.rs4
-rw-r--r--src/api/client_server/profile.rs20
-rw-r--r--src/api/client_server/push.rs26
-rw-r--r--src/api/client_server/read_marker.rs4
-rw-r--r--src/api/client_server/redact.rs2
-rw-r--r--src/api/client_server/report.rs2
-rw-r--r--src/api/client_server/room.rs8
-rw-r--r--src/api/client_server/search.rs2
-rw-r--r--src/api/client_server/session.rs12
-rw-r--r--src/api/client_server/state.rs10
-rw-r--r--src/api/client_server/sync.rs18
-rw-r--r--src/api/client_server/tag.rs8
-rw-r--r--src/api/client_server/thirdparty.rs2
-rw-r--r--src/api/client_server/to_device.rs2
-rw-r--r--src/api/client_server/typing.rs2
-rw-r--r--src/api/client_server/unversioned.rs2
-rw-r--r--src/api/client_server/user_directory.rs2
-rw-r--r--src/api/client_server/voip.rs2
-rw-r--r--src/api/server_server.rs44
-rw-r--r--src/database/key_value/users.rs10
-rw-r--r--src/service/rooms/event_handler/mod.rs10
-rw-r--r--src/service/sending/mod.rs8
-rw-r--r--src/service/uiaa/mod.rs12
-rw-r--r--src/service/users/data.rs10
-rw-r--r--src/service/users/mod.rs10
-rw-r--r--src/utils/error.rs5
41 files changed, 231 insertions, 250 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 6ae1836..a659dec 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2053,7 +2053,7 @@ dependencies = [
[[package]]
name = "ruma"
version = "0.7.4"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"assign",
"js_int",
@@ -2071,7 +2071,7 @@ dependencies = [
[[package]]
name = "ruma-appservice-api"
version = "0.7.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"js_int",
"ruma-common",
@@ -2082,7 +2082,7 @@ dependencies = [
[[package]]
name = "ruma-client-api"
version = "0.15.3"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"assign",
"bytes",
@@ -2099,7 +2099,7 @@ dependencies = [
[[package]]
name = "ruma-common"
version = "0.10.5"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"base64",
"bytes",
@@ -2127,7 +2127,7 @@ dependencies = [
[[package]]
name = "ruma-federation-api"
version = "0.6.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"js_int",
"ruma-common",
@@ -2138,7 +2138,7 @@ dependencies = [
[[package]]
name = "ruma-identifiers-validation"
version = "0.9.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"js_int",
"thiserror",
@@ -2147,7 +2147,7 @@ dependencies = [
[[package]]
name = "ruma-identity-service-api"
version = "0.6.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"js_int",
"ruma-common",
@@ -2157,7 +2157,7 @@ dependencies = [
[[package]]
name = "ruma-macros"
version = "0.10.5"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"once_cell",
"proc-macro-crate",
@@ -2172,7 +2172,7 @@ dependencies = [
[[package]]
name = "ruma-push-gateway-api"
version = "0.6.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"js_int",
"ruma-common",
@@ -2183,7 +2183,7 @@ dependencies = [
[[package]]
name = "ruma-signatures"
version = "0.12.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"base64",
"ed25519-dalek",
@@ -2199,7 +2199,7 @@ dependencies = [
[[package]]
name = "ruma-state-res"
version = "0.8.0"
-source = "git+https://github.com/ruma/ruma?rev=2bd5c131f49b2239750c39ed63b623cd5a01c965#2bd5c131f49b2239750c39ed63b623cd5a01c965"
+source = "git+https://github.com/ruma/ruma?rev=af28dc8339773e5cad460289fa3c4e22d9a058cd#af28dc8339773e5cad460289fa3c4e22d9a058cd"
dependencies = [
"itertools",
"js_int",
diff --git a/Cargo.toml b/Cargo.toml
index 801d363..87102c0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,7 +21,7 @@ tower-http = { version = "0.3.4", features = ["add-extension", "cors", "compress
# Used for matrix spec type definitions and helpers
#ruma = { version = "0.4.0", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
-ruma = { git = "https://github.com/ruma/ruma", rev = "2bd5c131f49b2239750c39ed63b623cd5a01c965", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
+ruma = { git = "https://github.com/ruma/ruma", rev = "af28dc8339773e5cad460289fa3c4e22d9a058cd", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-msc2448", "unstable-exhaustive-types", "ring-compat", "unstable-unspecified" ] }
#ruma = { git = "https://github.com/timokoesters/ruma", rev = "50c1db7e0a3a21fc794b0cce3b64285a4c750c71", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
#ruma = { path = "../ruma/crates/ruma", features = ["compat", "rand", "appservice-api-c", "client-api", "federation-api", "push-gateway-api-c", "state-res", "unstable-pre-spec", "unstable-exhaustive-types"] }
diff --git a/src/api/client_server/account.rs b/src/api/client_server/account.rs
index 309a361..50a6a18 100644
--- a/src/api/client_server/account.rs
+++ b/src/api/client_server/account.rs
@@ -30,7 +30,7 @@ const RANDOM_USER_ID_LENGTH: usize = 10;
///
/// Note: This will not reserve the username, so the username might become invalid when trying to register
pub async fn get_register_available_route(
- body: Ruma<get_username_availability::v3::IncomingRequest>,
+ body: Ruma<get_username_availability::v3::Request>,
) -> Result<get_username_availability::v3::Response> {
// Validate user id
let user_id = UserId::parse_with_server_name(
@@ -73,9 +73,7 @@ pub async fn get_register_available_route(
/// - If type is not guest and no username is given: Always fails after UIAA check
/// - Creates a new account and populates it with default account data
/// - If `inhibit_login` is false: Creates a device and returns device id and access_token
-pub async fn register_route(
- body: Ruma<register::v3::IncomingRequest>,
-) -> Result<register::v3::Response> {
+pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<register::v3::Response> {
if !services().globals.allow_registration() && !body.from_appservice {
return Err(Error::BadRequest(
ErrorKind::Forbidden,
@@ -266,7 +264,7 @@ pub async fn register_route(
/// - Forgets to-device events
/// - Triggers device list updates
pub async fn change_password_route(
- body: Ruma<change_password::v3::IncomingRequest>,
+ body: Ruma<change_password::v3::Request>,
) -> Result<change_password::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
@@ -354,7 +352,7 @@ pub async fn whoami_route(body: Ruma<whoami::v3::Request>) -> Result<whoami::v3:
/// - Triggers device list updates
/// - Removes ability to log in again
pub async fn deactivate_route(
- body: Ruma<deactivate::v3::IncomingRequest>,
+ body: Ruma<deactivate::v3::Request>,
) -> Result<deactivate::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
@@ -426,7 +424,7 @@ pub async fn third_party_route(
///
/// - 403 signals that The homeserver does not allow the third party identifier as a contact option.
pub async fn request_3pid_management_token_via_email_route(
- _body: Ruma<request_3pid_management_token_via_email::v3::IncomingRequest>,
+ _body: Ruma<request_3pid_management_token_via_email::v3::Request>,
) -> Result<request_3pid_management_token_via_email::v3::Response> {
Err(Error::BadRequest(
ErrorKind::ThreepidDenied,
@@ -440,7 +438,7 @@ pub async fn request_3pid_management_token_via_email_route(
///
/// - 403 signals that The homeserver does not allow the third party identifier as a contact option.
pub async fn request_3pid_management_token_via_msisdn_route(
- _body: Ruma<request_3pid_management_token_via_msisdn::v3::IncomingRequest>,
+ _body: Ruma<request_3pid_management_token_via_msisdn::v3::Request>,
) -> Result<request_3pid_management_token_via_msisdn::v3::Response> {
Err(Error::BadRequest(
ErrorKind::ThreepidDenied,
diff --git a/src/api/client_server/alias.rs b/src/api/client_server/alias.rs
index b28606c..ab51b50 100644
--- a/src/api/client_server/alias.rs
+++ b/src/api/client_server/alias.rs
@@ -9,14 +9,14 @@ use ruma::{
},
federation,
},
- RoomAliasId,
+ OwnedRoomAliasId,
};
/// # `PUT /_matrix/client/r0/directory/room/{roomAlias}`
///
/// Creates a new room alias on this server.
pub async fn create_alias_route(
- body: Ruma<create_alias::v3::IncomingRequest>,
+ body: Ruma<create_alias::v3::Request>,
) -> Result<create_alias::v3::Response> {
if body.room_alias.server_name() != services().globals.server_name() {
return Err(Error::BadRequest(
@@ -49,7 +49,7 @@ pub async fn create_alias_route(
/// - TODO: additional access control checks
/// - TODO: Update canonical alias event
pub async fn delete_alias_route(
- body: Ruma<delete_alias::v3::IncomingRequest>,
+ body: Ruma<delete_alias::v3::Request>,
) -> Result<delete_alias::v3::Response> {
if body.room_alias.server_name() != services().globals.server_name() {
return Err(Error::BadRequest(
@@ -71,18 +71,22 @@ pub async fn delete_alias_route(
///
/// - TODO: Suggest more servers to join via
pub async fn get_alias_route(
- body: Ruma<get_alias::v3::IncomingRequest>,
+ body: Ruma<get_alias::v3::Request>,
) -> Result<get_alias::v3::Response> {
- get_alias_helper(&body.room_alias).await
+ get_alias_helper(body.body.room_alias).await
}
-pub(crate) async fn get_alias_helper(room_alias: &RoomAliasId) -> Result<get_alias::v3::Response> {
+pub(crate) async fn get_alias_helper(
+ room_alias: OwnedRoomAliasId,
+) -> Result<get_alias::v3::Response> {
if room_alias.server_name() != services().globals.server_name() {
let response = services()
.sending
.send_federation_request(
room_alias.server_name(),
- federation::query::get_room_information::v1::Request { room_alias },
+ federation::query::get_room_information::v1::Request {
+ room_alias: room_alias.to_owned(),
+ },
)
.await?;
@@ -93,7 +97,7 @@ pub(crate) async fn get_alias_helper(room_alias: &RoomAliasId) -> Result<get_ali
}
let mut room_id = None;
- match services().rooms.alias.resolve_local_alias(room_alias)? {
+ match services().rooms.alias.resolve_local_alias(&room_alias)? {
Some(r) => room_id = Some(r),
None => {
for (_id, registration) in services().appservice.all()? {
@@ -115,7 +119,9 @@ pub(crate) async fn get_alias_helper(room_alias: &RoomAliasId) -> Result<get_ali
.sending
.send_appservice_request(
registration,
- appservice::query::query_room_alias::v1::Request { room_alias },
+ appservice::query::query_room_alias::v1::Request {
+ room_alias: room_alias.clone(),
+ },
)
.await
.is_ok()
@@ -124,7 +130,7 @@ pub(crate) async fn get_alias_helper(room_alias: &RoomAliasId) -> Result<get_ali
services()
.rooms
.alias
- .resolve_local_alias(room_alias)?
+ .resolve_local_alias(&room_alias)?
.ok_or_else(|| {
Error::bad_config("Appservice lied to us. Room does not exist.")
})?,
diff --git a/src/api/client_server/backup.rs b/src/api/client_server/backup.rs
index f3d5ddc..115cba7 100644
--- a/src/api/client_server/backup.rs
+++ b/src/api/client_server/backup.rs
@@ -28,7 +28,7 @@ pub async fn create_backup_version_route(
///
/// Update information about an existing backup. Only `auth_data` can be modified.
pub async fn update_backup_version_route(
- body: Ruma<update_backup_version::v3::IncomingRequest>,
+ body: Ruma<update_backup_version::v3::Request>,
) -> Result<update_backup_version::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
services()
@@ -66,7 +66,7 @@ pub async fn get_latest_backup_info_route(
///
/// Get information about an existing backup.
pub async fn get_backup_info_route(
- body: Ruma<get_backup_info::v3::IncomingRequest>,
+ body: Ruma<get_backup_info::v3::Request>,
) -> Result<get_backup_info::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let algorithm = services()
@@ -96,7 +96,7 @@ pub async fn get_backup_info_route(
///
/// - Deletes both information about the backup, as well as all key data related to the backup
pub async fn delete_backup_version_route(
- body: Ruma<delete_backup_version::v3::IncomingRequest>,
+ body: Ruma<delete_backup_version::v3::Request>,
) -> Result<delete_backup_version::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -115,7 +115,7 @@ pub async fn delete_backup_version_route(
/// - Adds the keys to the backup
/// - Returns the new number of keys in this backup and the etag
pub async fn add_backup_keys_route(
- body: Ruma<add_backup_keys::v3::IncomingRequest>,
+ body: Ruma<add_backup_keys::v3::Request>,
) -> Result<add_backup_keys::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -162,7 +162,7 @@ pub async fn add_backup_keys_route(
/// - Adds the keys to the backup
/// - Returns the new number of keys in this backup and the etag
pub async fn add_backup_keys_for_room_route(
- body: Ruma<add_backup_keys_for_room::v3::IncomingRequest>,
+ body: Ruma<add_backup_keys_for_room::v3::Request>,
) -> Result<add_backup_keys_for_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -207,7 +207,7 @@ pub async fn add_backup_keys_for_room_route(
/// - Adds the keys to the backup
/// - Returns the new number of keys in this backup and the etag
pub async fn add_backup_keys_for_session_route(
- body: Ruma<add_backup_keys_for_session::v3::IncomingRequest>,
+ body: Ruma<add_backup_keys_for_session::v3::Request>,
) -> Result<add_backup_keys_for_session::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -246,7 +246,7 @@ pub async fn add_backup_keys_for_session_route(
///
/// Retrieves all keys from the backup.
pub async fn get_backup_keys_route(
- body: Ruma<get_backup_keys::v3::IncomingRequest>,
+ body: Ruma<get_backup_keys::v3::Request>,
) -> Result<get_backup_keys::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -259,7 +259,7 @@ pub async fn get_backup_keys_route(
///
/// Retrieves all keys from the backup for a given room.
pub async fn get_backup_keys_for_room_route(
- body: Ruma<get_backup_keys_for_room::v3::IncomingRequest>,
+ body: Ruma<get_backup_keys_for_room::v3::Request>,
) -> Result<get_backup_keys_for_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -274,7 +274,7 @@ pub async fn get_backup_keys_for_room_route(
///
/// Retrieves a key from the backup.
pub async fn get_backup_keys_for_session_route(
- body: Ruma<get_backup_keys_for_session::v3::IncomingRequest>,
+ body: Ruma<get_backup_keys_for_session::v3::Request>,
) -> Result<get_backup_keys_for_session::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -293,7 +293,7 @@ pub async fn get_backup_keys_for_session_route(
///
/// Delete the keys from the backup.
pub async fn delete_backup_keys_route(
- body: Ruma<delete_backup_keys::v3::IncomingRequest>,
+ body: Ruma<delete_backup_keys::v3::Request>,
) -> Result<delete_backup_keys::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -316,7 +316,7 @@ pub async fn delete_backup_keys_route(
///
/// Delete the keys from the backup for a given room.
pub async fn delete_backup_keys_for_room_route(
- body: Ruma<delete_backup_keys_for_room::v3::IncomingRequest>,
+ body: Ruma<delete_backup_keys_for_room::v3::Request>,
) -> Result<delete_backup_keys_for_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -339,7 +339,7 @@ pub async fn delete_backup_keys_for_room_route(
///
/// Delete a key from the backup.
pub async fn delete_backup_keys_for_session_route(
- body: Ruma<delete_backup_keys_for_session::v3::IncomingRequest>,
+ body: Ruma<delete_backup_keys_for_session::v3::Request>,
) -> Result<delete_backup_keys_for_session::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/capabilities.rs b/src/api/client_server/capabilities.rs
index 31d42d2..233e3c9 100644
--- a/src/api/client_server/capabilities.rs
+++ b/src/api/client_server/capabilities.rs
@@ -8,7 +8,7 @@ use std::collections::BTreeMap;
///
/// Get information on the supported feature set and other relevent capabilities of this server.
pub async fn get_capabilities_route(
- _body: Ruma<get_capabilities::v3::IncomingRequest>,
+ _body: Ruma<get_capabilities::v3::Request>,
) -> Result<get_capabilities::v3::Response> {
let mut available = BTreeMap::new();
for room_version in &services().globals.unstable_room_versions {
diff --git a/src/api/client_server/config.rs b/src/api/client_server/config.rs
index dbd2b2c..12f9aea 100644
--- a/src/api/client_server/config.rs
+++ b/src/api/client_server/config.rs
@@ -17,7 +17,7 @@ use serde_json::{json, value::RawValue as RawJsonValue};
///
/// Sets some account data for the sender user.
pub async fn set_global_account_data_route(
- body: Ruma<set_global_account_data::v3::IncomingRequest>,
+ body: Ruma<set_global_account_data::v3::Request>,
) -> Result<set_global_account_data::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -43,7 +43,7 @@ pub async fn set_global_account_data_route(
///
/// Sets some room account data for the sender user.
pub async fn set_room_account_data_route(
- body: Ruma<set_room_account_data::v3::IncomingRequest>,
+ body: Ruma<set_room_account_data::v3::Request>,
) -> Result<set_room_account_data::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -69,7 +69,7 @@ pub async fn set_room_account_data_route(
///
/// Gets some account data for the sender user.
pub async fn get_global_account_data_route(
- body: Ruma<get_global_account_data::v3::IncomingRequest>,
+ body: Ruma<get_global_account_data::v3::Request>,
) -> Result<get_global_account_data::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -89,7 +89,7 @@ pub async fn get_global_account_data_route(
///
/// Gets some room account data for the sender user.
pub async fn get_room_account_data_route(
- body: Ruma<get_room_account_data::v3::IncomingRequest>,
+ body: Ruma<get_room_account_data::v3::Request>,
) -> Result<get_room_account_data::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/context.rs b/src/api/client_server/context.rs
index 2e0f257..1e62f91 100644
--- a/src/api/client_server/context.rs
+++ b/src/api/client_server/context.rs
@@ -13,7 +13,7 @@ use tracing::error;
/// - Only works if the user is joined (TODO: always allow, but only show events if the user was
/// joined, depending on history_visibility)
pub async fn get_context_route(
- body: Ruma<get_context::v3::IncomingRequest>,
+ body: Ruma<get_context::v3::Request>,
) -> Result<get_context::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/device.rs b/src/api/client_server/device.rs
index d4c4178..aba061b 100644
--- a/src/api/client_server/device.rs
+++ b/src/api/client_server/device.rs
@@ -28,7 +28,7 @@ pub async fn get_devices_route(
///
/// Get metadata on a single device of the sender user.
pub async fn get_device_route(
- body: Ruma<get_device::v3::IncomingRequest>,
+ body: Ruma<get_device::v3::Request>,
) -> Result<get_device::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -44,7 +44,7 @@ pub async fn get_device_route(
///
/// Updates the metadata on a given device of the sender user.
pub async fn update_device_route(
- body: Ruma<update_device::v3::IncomingRequest>,
+ body: Ruma<update_device::v3::Request>,
) -> Result<update_device::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -72,7 +72,7 @@ pub async fn update_device_route(
/// - Forgets to-device events
/// - Triggers device list updates
pub async fn delete_device_route(
- body: Ruma<delete_device::v3::IncomingRequest>,
+ body: Ruma<delete_device::v3::Request>,
) -> Result<delete_device::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
@@ -126,7 +126,7 @@ pub async fn delete_device_route(
/// - Forgets to-device events
/// - Triggers device list updates
pub async fn delete_devices_route(
- body: Ruma<delete_devices::v3::IncomingRequest>,
+ body: Ruma<delete_devices::v3::Request>,
) -> Result<delete_devices::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/directory.rs b/src/api/client_server/directory.rs
index f07a225..645710f 100644
--- a/src/api/client_server/directory.rs
+++ b/src/api/client_server/directory.rs
@@ -11,10 +11,7 @@ use ruma::{
},
federation,
},
- directory::{
- Filter, IncomingFilter, IncomingRoomNetwork, PublicRoomJoinRule, PublicRoomsChunk,
- RoomNetwork,
- },
+ directory::{Filter, PublicRoomJoinRule, PublicRoomsChunk, RoomNetwork},
events::{
room::{
avatar::RoomAvatarEventContent,
@@ -38,7 +35,7 @@ use tracing::{error, info, warn};
///
/// - Rooms are ordered by the number of joined members
pub async fn get_public_rooms_filtered_route(
- body: Ruma<get_public_rooms_filtered::v3::IncomingRequest>,
+ body: Ruma<get_public_rooms_filtered::v3::Request>,
) -> Result<get_public_rooms_filtered::v3::Response> {
get_public_rooms_filtered_helper(
body.server.as_deref(),
@@ -56,14 +53,14 @@ pub async fn get_public_rooms_filtered_route(
///
/// - Rooms are ordered by the number of joined members
pub async fn get_public_rooms_route(
- body: Ruma<get_public_rooms::v3::IncomingRequest>,
+ body: Ruma<get_public_rooms::v3::Request>,
) -> Result<get_public_rooms::v3::Response> {
let response = get_public_rooms_filtered_helper(
body.server.as_deref(),
body.limit,
body.since.as_deref(),
- &IncomingFilter::default(),
- &IncomingRoomNetwork::Matrix,
+ &Filter::default(),
+ &RoomNetwork::Matrix,
)
.await?;
@@ -81,7 +78,7 @@ pub async fn get_public_rooms_route(
///
/// - TODO: Access control checks
pub async fn set_room_visibility_route(
- body: Ruma<set_room_visibility::v3::IncomingRequest>,
+ body: Ruma<set_room_visibility::v3::Request>,
) -> Result<set_room_visibility::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -111,7 +108,7 @@ pub async fn set_room_visibility_route(
///
/// Gets the visibility of a given room in the room directory.
pub async fn get_room_visibility_route(
- body: Ruma<get_room_visibility::v3::IncomingRequest>,
+ body: Ruma<get_room_visibility::v3::Request>,
) -> Result<get_room_visibility::v3::Response> {
if !services().rooms.metadata.exists(&body.room_id)? {
// Return 404 if the room doesn't exist
@@ -131,8 +128,8 @@ pub(crate) async fn get_public_rooms_filtered_helper(
server: Option<&ServerName>,
limit: Option<UInt>,
since: Option<&str>,
- filter: &IncomingFilter,
- _network: &IncomingRoomNetwork,
+ filter: &Filter,
+ _network: &RoomNetwork,
) -> Result<get_public_rooms_filtered::v3::Response> {
if let Some(other_server) =
server.filter(|server| *server != services().globals.server_name().as_str())
@@ -143,9 +140,9 @@ pub(crate) async fn get_public_rooms_filtered_helper(
other_server,
federation::directory::get_public_rooms_filtered::v1::Request {
limit,
- since,
+ since: since.map(ToOwned::to_owned),
filter: Filter {
- generic_search_term: filter.generic_search_term.as_deref(),
+ generic_search_term: filter.generic_search_term.clone(),
room_types: filter.room_types.clone(),
},
room_network: RoomNetwork::Matrix,
diff --git a/src/api/client_server/filter.rs b/src/api/client_server/filter.rs
index a0d5a19..e9a359d 100644
--- a/src/api/client_server/filter.rs
+++ b/src/api/client_server/filter.rs
@@ -10,7 +10,7 @@ use ruma::api::client::{
///
/// - A user can only access their own filters
pub async fn get_filter_route(
- body: Ruma<get_filter::v3::IncomingRequest>,
+ body: Ruma<get_filter::v3::Request>,
) -> Result<get_filter::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let filter = match services().users.get_filter(sender_user, &body.filter_id)? {
@@ -25,7 +25,7 @@ pub async fn get_filter_route(
///
/// Creates a new filter to be used by other endpoints.
pub async fn create_filter_route(
- body: Ruma<create_filter::v3::IncomingRequest>,
+ body: Ruma<create_filter::v3::Request>,
) -> Result<create_filter::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
Ok(create_filter::v3::Response::new(
diff --git a/src/api/client_server/keys.rs b/src/api/client_server/keys.rs
index b649166..ba89ece 100644
--- a/src/api/client_server/keys.rs
+++ b/src/api/client_server/keys.rs
@@ -65,9 +65,7 @@ pub async fn upload_keys_route(
/// - Always fetches users from other servers over federation
/// - Gets master keys, self-signing keys, user signing keys and device keys.
/// - The master and self-signing keys contain signatures that the user is allowed to see
-pub async fn get_keys_route(
- body: Ruma<get_keys::v3::IncomingRequest>,
-) -> Result<get_keys::v3::Response> {
+pub async fn get_keys_route(body: Ruma<get_keys::v3::Request>) -> Result<get_keys::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let response =
@@ -93,7 +91,7 @@ pub async fn claim_keys_route(
///
/// - Requires UIAA to verify password
pub async fn upload_signing_keys_route(
- body: Ruma<upload_signing_keys::v3::IncomingRequest>,
+ body: Ruma<upload_signing_keys::v3::Request>,
) -> Result<upload_signing_keys::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
@@ -214,7 +212,7 @@ pub async fn upload_signatures_route(
///
/// - TODO: left users
pub async fn get_key_changes_route(
- body: Ruma<get_key_changes::v3::IncomingRequest>,
+ body: Ruma<get_key_changes::v3::Request>,
) -> Result<get_key_changes::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/media.rs b/src/api/client_server/media.rs
index fa6def0..3410cc0 100644
--- a/src/api/client_server/media.rs
+++ b/src/api/client_server/media.rs
@@ -27,7 +27,7 @@ pub async fn get_media_config_route(
/// - Some metadata will be saved in the database
/// - Media will be saved in the media/ directory
pub async fn create_content_route(
- body: Ruma<create_content::v3::IncomingRequest>,
+ body: Ruma<create_content::v3::Request>,
) -> Result<create_content::v3::Response> {
let mxc = format!(
"mxc://{}/{}",
@@ -57,7 +57,7 @@ pub async fn create_content_route(
pub async fn get_remote_content(
mxc: &str,
server_name: &ruma::ServerName,
- media_id: &str,
+ media_id: String,
) -> Result<get_content::v3::Response, Error> {
let content_response = services()
.sending
@@ -65,7 +65,7 @@ pub async fn get_remote_content(
server_name,
get_content::v3::Request {
allow_remote: false,
- server_name,
+ server_name: server_name.to_owned(),
media_id,
},
)
@@ -90,7 +90,7 @@ pub async fn get_remote_content(
///
/// - Only allows federation if `allow_remote` is true
pub async fn get_content_route(
- body: Ruma<get_content::v3::IncomingRequest>,
+ body: Ruma<get_content::v3::Request>,
) -> Result<get_content::v3::Response> {
let mxc = format!("mxc://{}/{}", body.server_name, body.media_id);
@@ -108,7 +108,7 @@ pub async fn get_content_route(
})
} else if &*body.server_name != services().globals.server_name() && body.allow_remote {
let remote_content_response =
- get_remote_content(&mxc, &body.server_name, &body.media_id).await?;
+ get_remote_content(&mxc, &body.server_name, body.media_id.clone()).await?;
Ok(remote_content_response)
} else {
Err(Error::BadRequest(ErrorKind::NotFound, "Media not found."))
@@ -121,7 +121,7 @@ pub async fn get_content_route(
///
/// - Only allows federation if `allow_remote` is true
pub async fn get_content_as_filename_route(
- body: Ruma<get_content_as_filename::v3::IncomingRequest>,
+ body: Ruma<get_content_as_filename::v3::Request>,
) -> Result<get_content_as_filename::v3::Response> {
let mxc = format!("mxc://{}/{}", body.server_name, body.media_id);
@@ -139,7 +139,7 @@ pub async fn get_content_as_filename_route(
})
} else if &*body.server_name != services().globals.server_name() && body.allow_remote {
let remote_content_response =
- get_remote_content(&mxc, &body.server_name, &body.media_id).await?;
+ get_remote_content(&mxc, &body.server_name, body.media_id.clone()).await?;
Ok(get_content_as_filename::v3::Response {
content_disposition: Some(format!("inline: filename={}", body.filename)),
@@ -158,7 +158,7 @@ pub async fn get_content_as_filename_route(
///
/// - Only allows federation if `allow_remote` is true
pub async fn get_content_thumbnail_route(
- body: Ruma<get_content_thumbnail::v3::IncomingRequest>,
+ body: Ruma<get_content_thumbnail::v3::Request>,
) -> Result<get_content_thumbnail::v3::Response> {
let mxc = format!("mxc://{}/{}", body.server_name, body.media_id);
@@ -192,8 +192,8 @@ pub async fn get_content_thumbnail_route(
height: body.height,
width: body.width,
method: body.method.clone(),
- server_name: &body.server_name,
- media_id: &body.media_id,
+ server_name: body.server_name.clone(),
+ media_id: body.media_id.clone(),
},
)
.await?;
diff --git a/src/api/client_server/membership.rs b/src/api/client_server/membership.rs
index f6e94e6..8674a60 100644
--- a/src/api/client_server/membership.rs
+++ b/src/api/client_server/membership.rs
@@ -5,7 +5,7 @@ use ruma::{
membership::{
ban_user, forget_room, get_member_events, invite_user, join_room_by_id,
join_room_by_id_or_alias, joined_members, joined_rooms, kick_user, leave_room,
- unban_user, IncomingThirdPartySigned,
+ unban_user, ThirdPartySigned,
},
},
federation::{self, membership::create_invite},
@@ -44,7 +44,7 @@ use super::get_alias_helper;
/// - If the server knowns about this room: creates the join event and does auth rules locally
/// - If the server does not know about the room: asks other servers over federation
pub async fn join_room_by_id_route(
- body: Ruma<join_room_by_id::v3::IncomingRequest>,
+ body: Ruma<join_room_by_id::v3::Request>,
) -> Result<join_room_by_id::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -81,7 +81,7 @@ pub async fn join_room_by_id_route(
/// - If the server knowns about this room: creates the join event and does auth rules locally
/// - If the server does not know about the room: asks other servers over federation
pub async fn join_room_by_id_or_alias_route(
- body: Ruma<join_room_by_id_or_alias::v3::IncomingRequest>,
+ body: Ruma<join_room_by_id_or_alias::v3::Request>,
) -> Result<join_room_by_id_or_alias::v3::Response> {
let sender_user = body.sender_user.as_deref().expect("user is authenticated");
let body = body.body;
@@ -107,7 +107,7 @@ pub async fn join_room_by_id_or_alias_route(
(servers, room_id)
}
Err(room_alias) => {
- let response = get_alias_helper(&room_alias).await?;
+ let response = get_alias_helper(room_alias).await?;
(response.servers.into_iter().collect(), response.room_id)
}
@@ -132,7 +132,7 @@ pub async fn join_room_by_id_or_alias_route(
///
/// - This should always work if the user is currently joined.
pub async fn leave_room_route(
- body: Ruma<leave_room::v3::IncomingRequest>,
+ body: Ruma<leave_room::v3::Request>,
) -> Result<leave_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -145,11 +145,11 @@ pub async fn leave_room_route(
///
/// Tries to send an invite event into the room.
pub async fn invite_user_route(
- body: Ruma<invite_user::v3::IncomingRequest>,
+ body: Ruma<invite_user::v3::Request>,
) -> Result<invite_user::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if let invite_user::v3::IncomingInvitationRecipient::UserId { user_id } = &body.recipient {
+ if let invite_user::v3::InvitationRecipient::UserId { user_id } = &body.recipient {
invite_helper(sender_user, user_id, &body.room_id, false).await?;
Ok(invite_user::v3::Response {})
} else {
@@ -161,7 +161,7 @@ pub async fn invite_user_route(
///
/// Tries to send a kick event into the room.
pub async fn kick_user_route(
- body: Ruma<kick_user::v3::IncomingRequest>,
+ body: Ruma<kick_user::v3::Request>,
) -> Result<kick_user::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -218,9 +218,7 @@ pub async fn kick_user_route(
/// # `POST /_matrix/client/r0/rooms/{roomId}/ban`
///
/// Tries to send a ban event into the room.
-pub async fn ban_user_route(
- body: Ruma<ban_user::v3::IncomingRequest>,
-) -> Result<ban_user::v3::Response> {
+pub async fn ban_user_route(body: Ruma<ban_user::v3::Request>) -> Result<ban_user::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
// TODO: reason
@@ -287,7 +285,7 @@ pub async fn ban_user_route(
///
/// Tries to send an unban event into the room.
pub async fn unban_user_route(
- body: Ruma<unban_user::v3::IncomingRequest>,
+ body: Ruma<unban_user::v3::Request>,
) -> Result<unban_user::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -349,7 +347,7 @@ pub async fn unban_user_route(
/// Note: Other devices of the user have no way of knowing the room was forgotten, so this has to
/// be called from every device
pub async fn forget_room_route(
- body: Ruma<forget_room::v3::IncomingRequest>,
+ body: Ruma<forget_room::v3::Request>,
) -> Result<forget_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -385,7 +383,7 @@ pub async fn joined_rooms_route(
///
/// - Only works if the user is currently joined
pub async fn get_member_events_route(
- body: Ruma<get_member_events::v3::IncomingRequest>,
+ body: Ruma<get_member_events::v3::Request>,
) -> Result<get_member_events::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -421,7 +419,7 @@ pub async fn get_member_events_route(
/// - The sender user must be in the room
/// - TODO: An appservice just needs a puppet joined
pub async fn joined_members_route(
- body: Ruma<joined_members::v3::IncomingRequest>,
+ body: Ruma<joined_members::v3::Request>,
) -> Result<joined_members::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -462,7 +460,7 @@ async fn join_room_by_id_helper(
sender_user: Option<&UserId>,
room_id: &RoomId,
servers: &[OwnedServerName],
- _third_party_signed: Option<&IncomingThirdPartySigned>,
+ _third_party_signed: Option<&ThirdPartySigned>,
) -> Result<join_room_by_id::v3::Response> {
let sender_user = sender_user.expect("user is authenticated");
@@ -575,9 +573,9 @@ async fn join_room_by_id_helper(
.send_federation_request(
&remote_server,
federation::membership::create_join_event::v2::Request {
- room_id,
- event_id,
- pdu: &PduEvent::convert_to_outgoing_federation_event(join_event.clone()),
+ room_id: room_id.to_owned(),
+ event_id: event_id.to_owned(),
+ pdu: PduEvent::convert_to_outgoing_federation_event(join_event.clone()),
},
)
.await?;
@@ -896,9 +894,9 @@ async fn join_room_by_id_helper(
.send_federation_request(
&remote_server,
federation::membership::create_join_event::v2::Request {
- room_id,
- event_id,
- pdu: &PduEvent::convert_to_outgoing_federation_event(join_event.clone()),
+ room_id: room_id.to_owned(),
+ event_id: event_id.to_owned(),
+ pdu: PduEvent::convert_to_outgoing_federation_event(join_event.clone()),
},
)
.await?;
@@ -969,9 +967,9 @@ async fn make_join_request(
.send_federation_request(
remote_server,
federation::membership::prepare_join_event::v1::Request {
- room_id,
- user_id: sender_user,
- ver: &services().globals.supported_room_versions(),
+ room_id: room_id.to_owned(),
+ user_id: sender_user.to_owned(),
+ ver: services().globals.supported_room_versions(),
},
)
.await;
@@ -1105,18 +1103,18 @@ pub(crate) async fn invite_helper<'a>(
(pdu, pdu_json, invite_room_state)
};
- let room_version_id = &services().rooms.state.get_room_version(room_id)?;
+ let room_version_id = services().rooms.state.get_room_version(room_id)?;
let response = services()
.sending
.send_federation_request(
user_id.server_name(),
create_invite::v2::Request {
- room_id,
- event_id: &pdu.event_id,
- room_version: &room_version_id,
- event: &PduEvent::convert_to_outgoing_federation_event(pdu_json.clone()),
- invite_room_state: &invite_room_state,
+ room_id: room_id.to_owned(),
+ event_id: (&*pdu.event_id).to_owned(),
+ room_version: room_version_id.clone(),
+ event: PduEvent::convert_to_outgoing_federation_event(pdu_json.clone()),
+ invite_room_state,
},
)
.await?;
@@ -1124,7 +1122,7 @@ pub(crate) async fn invite_helper<'a>(
let pub_key_map = RwLock::new(BTreeMap::new());
// We do not add the event_id field to the pdu here because of signature and hashes checks
- let (event_id, value) = match gen_event_id_canonical_json(&response.event, room_version_id)
+ let (event_id, value) = match gen_event_id_canonical_json(&response.event, &room_version_id)
{
Ok(t) => t,
Err(_) => {
@@ -1136,7 +1134,7 @@ pub(crate) async fn invite_helper<'a>(
}
};
- if pdu.event_id != event_id {
+ if *pdu.event_id != *event_id {
warn!("Server {} changed invite event, that's not allowed in the spec: ours: {:?}, theirs: {:?}", user_id.server_name(), pdu_json, value);
}
@@ -1363,7 +1361,10 @@ async fn remote_leave_room(user_id: &UserId, room_id: &RoomId) -> Result<()> {
.sending
.send_federation_request(
&remote_server,
- federation::membership::prepare_leave_event::v1::Request { room_id, user_id },
+ federation::membership::prepare_leave_event::v1::Request {
+ room_id: room_id.to_owned(),
+ user_id: user_id.to_owned(),
+ },
)
.await;
@@ -1440,9 +1441,9 @@ async fn remote_leave_room(user_id: &UserId, room_id: &RoomId) -> Result<()> {
.send_federation_request(
&remote_server,
federation::membership::create_leave_event::v2::Request {
- room_id,
- event_id: &event_id,
- pdu: &PduEvent::convert_to_outgoing_federation_event(leave_event.clone()),
+ room_id: room_id.to_owned(),
+ event_id,
+ pdu: PduEvent::convert_to_outgoing_federation_event(leave_event.clone()),
},
)
.await?;
diff --git a/src/api/client_server/message.rs b/src/api/client_server/message.rs
index b04c262..6ad0751 100644
--- a/src/api/client_server/message.rs
+++ b/src/api/client_server/message.rs
@@ -19,7 +19,7 @@ use std::{
/// - The only requirement for the content is that it has to be valid json
/// - Tries to send the event into the room, auth rules will determine if it is allowed
pub async fn send_message_event_route(
- body: Ruma<send_message_event::v3::IncomingRequest>,
+ body: Ruma<send_message_event::v3::Request>,
) -> Result<send_message_event::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_deref();
@@ -105,7 +105,7 @@ pub async fn send_message_event_route(
/// - Only works if the user is joined (TODO: always allow, but only show events where the user was
/// joined, depending on history_visibility)
pub async fn get_message_events_route(
- body: Ruma<get_message_events::v3::IncomingRequest>,
+ body: Ruma<get_message_events::v3::Request>,
) -> Result<get_message_events::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/presence.rs b/src/api/client_server/presence.rs
index dfac3db..ef88d1a 100644
--- a/src/api/client_server/presence.rs
+++ b/src/api/client_server/presence.rs
@@ -6,7 +6,7 @@ use std::time::Duration;
///
/// Sets the presence state of the sender user.
pub async fn set_presence_route(
- body: Ruma<set_presence::v3::IncomingRequest>,
+ body: Ruma<set_presence::v3::Request>,
) -> Result<set_presence::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -43,7 +43,7 @@ pub async fn set_presence_route(
///
/// - Only works if you share a room with the user
pub async fn get_presence_route(
- body: Ruma<get_presence::v3::IncomingRequest>,
+ body: Ruma<get_presence::v3::Request>,
) -> Result<get_presence::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/profile.rs b/src/api/client_server/profile.rs
index 5ace177..6400e89 100644
--- a/src/api/client_server/profile.rs
+++ b/src/api/client_server/profile.rs
@@ -20,7 +20,7 @@ use std::sync::Arc;
///
/// - Also makes sure other users receive the update using presence EDUs
pub async fn set_displayname_route(
- body: Ruma<set_display_name::v3::IncomingRequest>,
+ body: Ruma<set_display_name::v3::Request>,
) -> Result<set_display_name::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -121,7 +121,7 @@ pub async fn set_displayname_route(
///
/// - If user is on another server: Fetches displayname over federation
pub async fn get_displayname_route(
- body: Ruma<get_display_name::v3::IncomingRequest>,
+ body: Ruma<get_display_name::v3::Request>,
) -> Result<get_display_name::v3::Response> {
if body.user_id.server_name() != services().globals.server_name() {
let response = services()
@@ -129,8 +129,8 @@ pub async fn get_displayname_route(
.send_federation_request(
body.user_id.server_name(),
federation::query::get_profile_information::v1::Request {
- user_id: &body.user_id,
- field: Some(&ProfileField::DisplayName),
+ user_id: body.user_id.clone(),
+ field: Some(ProfileField::DisplayName),
},
)
.await?;
@@ -151,7 +151,7 @@ pub async fn get_displayname_route(
///
/// - Also makes sure other users receive the update using presence EDUs
pub async fn set_avatar_url_route(
- body: Ruma<set_avatar_url::v3::IncomingRequest>,
+ body: Ruma<set_avatar_url::v3::Request>,
) -> Result<set_avatar_url::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -256,7 +256,7 @@ pub async fn set_avatar_url_route(
///
/// - If user is on another server: Fetches avatar_url and blurhash over federation
pub async fn get_avatar_url_route(
- body: Ruma<get_avatar_url::v3::IncomingRequest>,
+ body: Ruma<get_avatar_url::v3::Request>,
) -> Result<get_avatar_url::v3::Response> {
if body.user_id.server_name() != services().globals.server_name() {
let response = services()
@@ -264,8 +264,8 @@ pub async fn get_avatar_url_route(
.send_federation_request(
body.user_id.server_name(),
federation::query::get_profile_information::v1::Request {
- user_id: &body.user_id,
- field: Some(&ProfileField::AvatarUrl),
+ user_id: body.user_id.clone(),
+ field: Some(ProfileField::AvatarUrl),
},
)
.await?;
@@ -288,7 +288,7 @@ pub async fn get_avatar_url_route(
///
/// - If user is on another server: Fetches profile over federation
pub async fn get_profile_route(
- body: Ruma<get_profile::v3::IncomingRequest>,
+ body: Ruma<get_profile::v3::Request>,
) -> Result<get_profile::v3::Response> {
if body.user_id.server_name() != services().globals.server_name() {
let response = services()
@@ -296,7 +296,7 @@ pub async fn get_profile_route(
.send_federation_request(
body.user_id.server_name(),
federation::query::get_profile_information::v1::Request {
- user_id: &body.user_id,
+ user_id: body.user_id.clone(),
field: None,
},
)
diff --git a/src/api/client_server/push.rs b/src/api/client_server/push.rs
index dc936a6..affd8e8 100644
--- a/src/api/client_server/push.rs
+++ b/src/api/client_server/push.rs
@@ -5,7 +5,7 @@ use ruma::{
push::{
delete_pushrule, get_pushers, get_pushrule, get_pushrule_actions, get_pushrule_enabled,
get_pushrules_all, set_pusher, set_pushrule, set_pushrule_actions,
- set_pushrule_enabled, RuleKind,
+ set_pushrule_enabled, RuleKind, RuleScope,
},
},
events::{push_rules::PushRulesEvent, GlobalAccountDataEventType},
@@ -45,7 +45,7 @@ pub async fn get_pushrules_all_route(
///
/// Retrieves a single specified push rule for this user.
pub async fn get_pushrule_route(
- body: Ruma<get_pushrule::v3::IncomingRequest>,
+ body: Ruma<get_pushrule::v3::Request>,
) -> Result<get_pushrule::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -104,12 +104,12 @@ pub async fn get_pushrule_route(
///
/// Creates a single specified push rule for this user.
pub async fn set_pushrule_route(
- body: Ruma<set_pushrule::v3::IncomingRequest>,
+ body: Ruma<set_pushrule::v3::Request>,
) -> Result<set_pushrule::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let body = body.body;
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
@@ -208,7 +208,7 @@ pub async fn set_pushrule_route(
///
/// Gets the actions of a single specified push rule for this user.
pub async fn get_pushrule_actions_route(
- body: Ruma<get_pushrule_actions::v3::IncomingRequest>,
+ body: Ruma<get_pushrule_actions::v3::Request>,
) -> Result<get_pushrule_actions::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -269,11 +269,11 @@ pub async fn get_pushrule_actions_route(
///
/// Sets the actions of a single specified push rule for this user.
pub async fn set_pushrule_actions_route(
- body: Ruma<set_pushrule_actions::v3::IncomingRequest>,
+ body: Ruma<set_pushrule_actions::v3::Request>,
) -> Result<set_pushrule_actions::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
@@ -344,11 +344,11 @@ pub async fn set_pushrule_actions_route(
///
/// Gets the enabled status of a single specified push rule for this user.
pub async fn get_pushrule_enabled_route(
- body: Ruma<get_pushrule_enabled::v3::IncomingRequest>,
+ body: Ruma<get_pushrule_enabled::v3::Request>,
) -> Result<get_pushrule_enabled::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
@@ -407,11 +407,11 @@ pub async fn get_pushrule_enabled_route(
///
/// Sets the enabled status of a single specified push rule for this user.
pub async fn set_pushrule_enabled_route(
- body: Ruma<set_pushrule_enabled::v3::IncomingRequest>,
+ body: Ruma<set_pushrule_enabled::v3::Request>,
) -> Result<set_pushrule_enabled::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
@@ -487,11 +487,11 @@ pub async fn set_pushrule_enabled_route(
///
/// Deletes a single specified push rule for this user.
pub async fn delete_pushrule_route(
- body: Ruma<delete_pushrule::v3::IncomingRequest>,
+ body: Ruma<delete_pushrule::v3::Request>,
) -> Result<delete_pushrule::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
- if body.scope != "global" {
+ if body.scope != RuleScope::Global {
return Err(Error::BadRequest(
ErrorKind::InvalidParam,
"Scopes other than 'global' are not supported.",
diff --git a/src/api/client_server/read_marker.rs b/src/api/client_server/read_marker.rs
index d529c6a..b12468a 100644
--- a/src/api/client_server/read_marker.rs
+++ b/src/api/client_server/read_marker.rs
@@ -16,7 +16,7 @@ use std::collections::BTreeMap;
/// - Updates fully-read account data event to `fully_read`
/// - If `read_receipt` is set: Update private marker and public read receipt EDU
pub async fn set_read_marker_route(
- body: Ruma<set_read_marker::v3::IncomingRequest>,
+ body: Ruma<set_read_marker::v3::Request>,
) -> Result<set_read_marker::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -89,7 +89,7 @@ pub async fn set_read_marker_route(
///
/// Sets private read marker and public read receipt EDU.
pub async fn create_receipt_route(
- body: Ruma<create_receipt::v3::IncomingRequest>,
+ body: Ruma<create_receipt::v3::Request>,
) -> Result<create_receipt::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/redact.rs b/src/api/client_server/redact.rs
index ab586c0..a29a561 100644
--- a/src/api/client_server/redact.rs
+++ b/src/api/client_server/redact.rs
@@ -14,7 +14,7 @@ use serde_json::value::to_raw_value;
///
/// - TODO: Handle txn id
pub async fn redact_event_route(
- body: Ruma<redact_event::v3::IncomingRequest>,
+ body: Ruma<redact_event::v3::Request>,
) -> Result<redact_event::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let body = body.body;
diff --git a/src/api/client_server/report.rs b/src/api/client_server/report.rs
index e45820e..ab5027c 100644
--- a/src/api/client_server/report.rs
+++ b/src/api/client_server/report.rs
@@ -10,7 +10,7 @@ use ruma::{
/// Reports an inappropriate event to homeserver admins
///
pub async fn report_event_route(
- body: Ruma<report_content::v3::IncomingRequest>,
+ body: Ruma<report_content::v3::Request>,
) -> Result<report_content::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/room.rs b/src/api/client_server/room.rs
index 097f0e1..c77cfa9 100644
--- a/src/api/client_server/room.rs
+++ b/src/api/client_server/room.rs
@@ -46,7 +46,7 @@ use tracing::{info, warn};
/// - Send events implied by `name` and `topic`
/// - Send invite events
pub async fn create_room_route(
- body: Ruma<create_room::v3::IncomingRequest>,
+ body: Ruma<create_room::v3::Request>,
) -> Result<create_room::v3::Response> {
use create_room::v3::RoomPreset;
@@ -421,7 +421,7 @@ pub async fn create_room_route(
///
/// - You have to currently be joined to the room (TODO: Respect history visibility)
pub async fn get_room_event_route(
- body: Ruma<get_room_event::v3::IncomingRequest>,
+ body: Ruma<get_room_event::v3::Request>,
) -> Result<get_room_event::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -452,7 +452,7 @@ pub async fn get_room_event_route(
///
/// - Only users joined to the room are allowed to call this TODO: Allow any user to call it if history_visibility is world readable
pub async fn get_room_aliases_route(
- body: Ruma<aliases::v3::IncomingRequest>,
+ body: Ruma<aliases::v3::Request>,
) -> Result<aliases::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -488,7 +488,7 @@ pub async fn get_room_aliases_route(
/// - Moves local aliases
/// - Modifies old room power levels to prevent users from speaking
pub async fn upgrade_room_route(
- body: Ruma<upgrade_room::v3::IncomingRequest>,
+ body: Ruma<upgrade_room::v3::Request>,
) -> Result<upgrade_room::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/search.rs b/src/api/client_server/search.rs
index 5b634a4..51255d5 100644
--- a/src/api/client_server/search.rs
+++ b/src/api/client_server/search.rs
@@ -15,7 +15,7 @@ use std::collections::BTreeMap;
///
/// - Only works if the user is currently joined to the room (TODO: Respect history visibility)
pub async fn search_events_route(
- body: Ruma<search_events::v3::IncomingRequest>,
+ body: Ruma<search_events::v3::Request>,
) -> Result<search_events::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/session.rs b/src/api/client_server/session.rs
index 7c8c128..64c0072 100644
--- a/src/api/client_server/session.rs
+++ b/src/api/client_server/session.rs
@@ -4,7 +4,7 @@ use ruma::{
api::client::{
error::ErrorKind,
session::{get_login_types, login, logout, logout_all},
- uiaa::IncomingUserIdentifier,
+ uiaa::UserIdentifier,
},
UserId,
};
@@ -22,7 +22,7 @@ struct Claims {
/// Get the supported login types of this server. One of these should be used as the `type` field
/// when logging in.
pub async fn get_login_types_route(
- _body: Ruma<get_login_types::v3::IncomingRequest>,
+ _body: Ruma<get_login_types::v3::Request>,
) -> Result<get_login_types::v3::Response> {
Ok(get_login_types::v3::Response::new(vec![
get_login_types::v3::LoginType::Password(Default::default()),
@@ -40,15 +40,15 @@ pub async fn get_login_types_route(
///
/// Note: You can use [`GET /_matrix/client/r0/login`](fn.get_supported_versions_route.html) to see
/// supported login types.
-pub async fn login_route(body: Ruma<login::v3::IncomingRequest>) -> Result<login::v3::Response> {
+pub async fn login_route(body: Ruma<login::v3::Request>) -> Result<login::v3::Response> {
// Validate login method
// TODO: Other login methods
let user_id = match &body.login_info {
- login::v3::IncomingLoginInfo::Password(login::v3::IncomingPassword {
+ login::v3::LoginInfo::Password(login::v3::Password {
identifier,
password,
}) => {
- let username = if let IncomingUserIdentifier::UserIdOrLocalpart(user_id) = identifier {
+ let username = if let UserIdentifier::UserIdOrLocalpart(user_id) = identifier {
user_id.to_lowercase()
} else {
return Err(Error::BadRequest(ErrorKind::Forbidden, "Bad login type."));
@@ -84,7 +84,7 @@ pub async fn login_route(body: Ruma<login::v3::IncomingRequest>) -> Result<login
user_id
}
- login::v3::IncomingLoginInfo::Token(login::v3::IncomingToken { token }) => {
+ login::v3::LoginInfo::Token(login::v3::Token { token }) => {
if let Some(jwt_decoding_key) = services().globals.jwt_decoding_key() {
let token = jsonwebtoken::decode::<Claims>(
token,
diff --git a/src/api/client_server/state.rs b/src/api/client_server/state.rs
index 36466b8..d9c1464 100644
--- a/src/api/client_server/state.rs
+++ b/src/api/client_server/state.rs
@@ -25,7 +25,7 @@ use ruma::{
/// - Tries to send the event into the room, auth rules will determine if it is allowed
/// - If event is new canonical_alias: Rejects if alias is incorrect
pub async fn send_state_event_for_key_route(
- body: Ruma<send_state_event::v3::IncomingRequest>,
+ body: Ruma<send_state_event::v3::Request>,
) -> Result<send_state_event::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -50,7 +50,7 @@ pub async fn send_state_event_for_key_route(
/// - Tries to send the event into the room, auth rules will determine if it is allowed
/// - If event is new canonical_alias: Rejects if alias is incorrect
pub async fn send_state_event_for_empty_key_route(
- body: Ruma<send_state_event::v3::IncomingRequest>,
+ body: Ruma<send_state_event::v3::Request>,
) -> Result<RumaResponse<send_state_event::v3::Response>> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -81,7 +81,7 @@ pub async fn send_state_event_for_empty_key_route(
///
/// - If not joined: Only works if current room history visibility is world readable
pub async fn get_state_events_route(
- body: Ruma<get_state_events::v3::IncomingRequest>,
+ body: Ruma<get_state_events::v3::Request>,
) -> Result<get_state_events::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -133,7 +133,7 @@ pub async fn get_state_events_route(
///
/// - If not joined: Only works if current room history visibility is world readable
pub async fn get_state_events_for_key_route(
- body: Ruma<get_state_events_for_key::v3::IncomingRequest>,
+ body: Ruma<get_state_events_for_key::v3::Request>,
) -> Result<get_state_events_for_key::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -188,7 +188,7 @@ pub async fn get_state_events_for_key_route(
///
/// - If not joined: Only works if current room history visibility is world readable
pub async fn get_state_events_for_empty_key_route(
- body: Ruma<get_state_events_for_key::v3::IncomingRequest>,
+ body: Ruma<get_state_events_for_key::v3::Request>,
) -> Result<RumaResponse<get_state_events_for_key::v3::Response>> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs
index 94e4f5b..43ca238 100644
--- a/src/api/client_server/sync.rs
+++ b/src/api/client_server/sync.rs
@@ -1,7 +1,7 @@
use crate::{services, Error, Result, Ruma, RumaResponse};
use ruma::{
api::client::{
- filter::{IncomingFilterDefinition, LazyLoadOptions},
+ filter::{FilterDefinition, LazyLoadOptions},
sync::sync_events::{self, DeviceLists, UnreadNotificationsCount},
uiaa::UiaaResponse,
},
@@ -55,7 +55,7 @@ use tracing::error;
/// - Sync is handled in an async task, multiple requests from the same device with the same
/// `since` will be cached
pub async fn sync_events_route(
- body: Ruma<sync_events::v3::IncomingRequest>,
+ body: Ruma<sync_events::v3::Request>,
) -> Result<sync_events::v3::Response, RumaResponse<UiaaResponse>> {
let sender_user = body.sender_user.expect("user is authenticated");
let sender_device = body.sender_device.expect("user is authenticated");
@@ -124,7 +124,7 @@ pub async fn sync_events_route(
async fn sync_helper_wrapper(
sender_user: OwnedUserId,
sender_device: OwnedDeviceId,
- body: sync_events::v3::IncomingRequest,
+ body: sync_events::v3::Request,
tx: Sender<Option<Result<sync_events::v3::Response>>>,
) {
let since = body.since.clone();
@@ -157,12 +157,12 @@ async fn sync_helper_wrapper(
async fn sync_helper(
sender_user: OwnedUserId,
sender_device: OwnedDeviceId,
- body: sync_events::v3::IncomingRequest,
+ body: sync_events::v3::Request,
// bool = caching allowed
) -> Result<(sync_events::v3::Response, bool), Error> {
use sync_events::v3::{
- Ephemeral, GlobalAccountData, IncomingFilter, InviteState, InvitedRoom, JoinedRoom,
- LeftRoom, Presence, RoomAccountData, RoomSummary, Rooms, State, Timeline, ToDevice,
+ Ephemeral, Filter, GlobalAccountData, InviteState, InvitedRoom, JoinedRoom, LeftRoom,
+ Presence, RoomAccountData, RoomSummary, Rooms, State, Timeline, ToDevice,
};
// TODO: match body.set_presence {
@@ -176,9 +176,9 @@ async fn sync_helper(
// Load filter
let filter = match body.filter {
- None => IncomingFilterDefinition::default(),
- Some(IncomingFilter::FilterDefinition(filter)) => filter,
- Some(IncomingFilter::FilterId(filter_id)) => services()
+ None => FilterDefinition::default(),
+ Some(Filter::FilterDefinition(filter)) => filter,
+ Some(Filter::FilterId(filter_id)) => services()
.users
.get_filter(&sender_user, &filter_id)?
.unwrap_or_default(),
diff --git a/src/api/client_server/tag.rs b/src/api/client_server/tag.rs
index c87e233..16f1600 100644
--- a/src/api/client_server/tag.rs
+++ b/src/api/client_server/tag.rs
@@ -14,7 +14,7 @@ use std::collections::BTreeMap;
///
/// - Inserts the tag into the tag event of the room account data.
pub async fn update_tag_route(
- body: Ruma<create_tag::v3::IncomingRequest>,
+ body: Ruma<create_tag::v3::Request>,
) -> Result<create_tag::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -58,7 +58,7 @@ pub async fn update_tag_route(
///
/// - Removes the tag from the tag event of the room account data.
pub async fn delete_tag_route(
- body: Ruma<delete_tag::v3::IncomingRequest>,
+ body: Ruma<delete_tag::v3::Request>,
) -> Result<delete_tag::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
@@ -98,9 +98,7 @@ pub async fn delete_tag_route(
/// Returns tags on the room.
///
/// - Gets the tag event of the room account data.
-pub async fn get_tags_route(
- body: Ruma<get_tags::v3::IncomingRequest>,
-) -> Result<get_tags::v3::Response> {
+pub async fn get_tags_route(body: Ruma<get_tags::v3::Request>) -> Result<get_tags::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let event = services().account_data.get(
diff --git a/src/api/client_server/thirdparty.rs b/src/api/client_server/thirdparty.rs
index 5665ad6..c2c1adf 100644
--- a/src/api/client_server/thirdparty.rs
+++ b/src/api/client_server/thirdparty.rs
@@ -7,7 +7,7 @@ use std::collections::BTreeMap;
///
/// TODO: Fetches all metadata about protocols supported by the homeserver.
pub async fn get_protocols_route(
- _body: Ruma<get_protocols::v3::IncomingRequest>,
+ _body: Ruma<get_protocols::v3::Request>,
) -> Result<get_protocols::v3::Response> {
// TODO
Ok(get_protocols::v3::Response {
diff --git a/src/api/client_server/to_device.rs b/src/api/client_server/to_device.rs
index 139b845..26db4e4 100644
--- a/src/api/client_server/to_device.rs
+++ b/src/api/client_server/to_device.rs
@@ -14,7 +14,7 @@ use ruma::{
///
/// Send a to-device event to a set of client devices.
pub async fn send_event_to_device_route(
- body: Ruma<send_event_to_device::v3::IncomingRequest>,
+ body: Ruma<send_event_to_device::v3::Request>,
) -> Result<send_event_to_device::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let sender_device = body.sender_device.as_deref();
diff --git a/src/api/client_server/typing.rs b/src/api/client_server/typing.rs
index ecc926f..43217e1 100644
--- a/src/api/client_server/typing.rs
+++ b/src/api/client_server/typing.rs
@@ -5,7 +5,7 @@ use ruma::api::client::{error::ErrorKind, typing::create_typing_event};
///
/// Sets the typing state of the sender user.
pub async fn create_typing_event_route(
- body: Ruma<create_typing_event::v3::IncomingRequest>,
+ body: Ruma<create_typing_event::v3::Request>,
) -> Result<create_typing_event::v3::Response> {
use create_typing_event::v3::Typing;
diff --git a/src/api/client_server/unversioned.rs b/src/api/client_server/unversioned.rs
index 8a5c3d2..526598b 100644
--- a/src/api/client_server/unversioned.rs
+++ b/src/api/client_server/unversioned.rs
@@ -15,7 +15,7 @@ use crate::{Result, Ruma};
/// Note: Unstable features are used while developing new features. Clients should avoid using
/// unstable features in their stable releases
pub async fn get_supported_versions_route(
- _body: Ruma<get_supported_versions::IncomingRequest>,
+ _body: Ruma<get_supported_versions::Request>,
) -> Result<get_supported_versions::Response> {
let resp = get_supported_versions::Response {
versions: vec![
diff --git a/src/api/client_server/user_directory.rs b/src/api/client_server/user_directory.rs
index 518daa5..c30bac5 100644
--- a/src/api/client_server/user_directory.rs
+++ b/src/api/client_server/user_directory.rs
@@ -14,7 +14,7 @@ use ruma::{
/// - Hides any local users that aren't in any public rooms (i.e. those that have the join rule set to public)
/// and don't share a room with the sender
pub async fn search_users_route(
- body: Ruma<search_users::v3::IncomingRequest>,
+ body: Ruma<search_users::v3::Request>,
) -> Result<search_users::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
let limit = u64::from(body.limit) as usize;
diff --git a/src/api/client_server/voip.rs b/src/api/client_server/voip.rs
index 6b1ee40..4990c17 100644
--- a/src/api/client_server/voip.rs
+++ b/src/api/client_server/voip.rs
@@ -10,7 +10,7 @@ type HmacSha1 = Hmac<Sha1>;
///
/// TODO: Returns information about the recommended turn server.
pub async fn turn_server_route(
- body: Ruma<get_turn_server_info::v3::IncomingRequest>,
+ body: Ruma<get_turn_server_info::v3::Request>,
) -> Result<get_turn_server_info::v3::Response> {
let sender_user = body.sender_user.as_ref().expect("user is authenticated");
diff --git a/src/api/server_server.rs b/src/api/server_server.rs
index 12b255b..2b854a6 100644
--- a/src/api/server_server.rs
+++ b/src/api/server_server.rs
@@ -31,7 +31,7 @@ use ruma::{
EndpointError, IncomingResponse, MatrixVersion, OutgoingRequest, OutgoingResponse,
SendAccessToken,
},
- directory::{IncomingFilter, IncomingRoomNetwork},
+ directory::{Filter, RoomNetwork},
events::{
receipt::{ReceiptEvent, ReceiptEventContent, ReceiptType},
room::{
@@ -294,13 +294,7 @@ where
} else {
Err(Error::FederationError(
destination.to_owned(),
- RumaError::try_from_http_response(http_response).map_err(|e| {
- warn!(
- "Invalid {} response from {} on: {} {}",
- status, &destination, url, e
- );
- Error::BadServerResponse("Server returned bad error response.")
- })?,
+ RumaError::from_http_response(http_response),
))
}
}
@@ -586,7 +580,7 @@ pub async fn get_server_keys_deprecated_route() -> impl IntoResponse {
///
/// Lists the public rooms on this server.
pub async fn get_public_rooms_filtered_route(
- body: Ruma<get_public_rooms_filtered::v1::IncomingRequest>,
+ body: Ruma<get_public_rooms_filtered::v1::Request>,
) -> Result<get_public_rooms_filtered::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -613,7 +607,7 @@ pub async fn get_public_rooms_filtered_route(
///
/// Lists the public rooms on this server.
pub async fn get_public_rooms_route(
- body: Ruma<get_public_rooms::v1::IncomingRequest>,
+ body: Ruma<get_public_rooms::v1::Request>,
) -> Result<get_public_rooms::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -623,8 +617,8 @@ pub async fn get_public_rooms_route(
None,
body.limit,
body.since.as_deref(),
- &IncomingFilter::default(),
- &IncomingRoomNetwork::Matrix,
+ &Filter::default(),
+ &RoomNetwork::Matrix,
)
.await?;
@@ -640,7 +634,7 @@ pub async fn get_public_rooms_route(
///
/// Push EDUs and PDUs to this server.
pub async fn send_transaction_message_route(
- body: Ruma<send_transaction_message::v1::IncomingRequest>,
+ body: Ruma<send_transaction_message::v1::Request>,
) -> Result<send_transaction_message::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -916,7 +910,7 @@ pub async fn send_transaction_message_route(
///
/// - Only works if a user of this server is currently invited or joined the room
pub async fn get_event_route(
- body: Ruma<get_event::v1::IncomingRequest>,
+ body: Ruma<get_event::v1::Request>,
) -> Result<get_event::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -963,7 +957,7 @@ pub async fn get_event_route(
///
/// Retrieves events that the sender is missing.
pub async fn get_missing_events_route(
- body: Ruma<get_missing_events::v1::IncomingRequest>,
+ body: Ruma<get_missing_events::v1::Request>,
) -> Result<get_missing_events::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1042,7 +1036,7 @@ pub async fn get_missing_events_route(
///
/// - This does not include the event itself
pub async fn get_event_authorization_route(
- body: Ruma<get_event_authorization::v1::IncomingRequest>,
+ body: Ruma<get_event_authorization::v1::Request>,
) -> Result<get_event_authorization::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1101,7 +1095,7 @@ pub async fn get_event_authorization_route(
///
/// Retrieves the current state of the room.
pub async fn get_room_state_route(
- body: Ruma<get_room_state::v1::IncomingRequest>,
+ body: Ruma<get_room_state::v1::Request>,
) -> Result<get_room_state::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1181,7 +1175,7 @@ pub async fn get_room_state_route(
///
/// Retrieves the current state of the room.
pub async fn get_room_state_ids_route(
- body: Ruma<get_room_state_ids::v1::IncomingRequest>,
+ body: Ruma<get_room_state_ids::v1::Request>,
) -> Result<get_room_state_ids::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1242,7 +1236,7 @@ pub async fn get_room_state_ids_route(
///
/// Creates a join template.
pub async fn create_join_event_template_route(
- body: Ruma<prepare_join_event::v1::IncomingRequest>,
+ body: Ruma<prepare_join_event::v1::Request>,
) -> Result<prepare_join_event::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1494,7 +1488,7 @@ async fn create_join_event(
///
/// Submits a signed join event.
pub async fn create_join_event_v1_route(
- body: Ruma<create_join_event::v1::IncomingRequest>,
+ body: Ruma<create_join_event::v1::Request>,
) -> Result<create_join_event::v1::Response> {
let sender_servername = body
.sender_servername
@@ -1510,7 +1504,7 @@ pub async fn create_join_event_v1_route(
///
/// Submits a signed join event.
pub async fn create_join_event_v2_route(
- body: Ruma<create_join_event::v2::IncomingRequest>,
+ body: Ruma<create_join_event::v2::Request>,
) -> Result<create_join_event::v2::Response> {
let sender_servername = body
.sender_servername
@@ -1526,7 +1520,7 @@ pub async fn create_join_event_v2_route(
///
/// Invites a remote user to a room.
pub async fn create_invite_route(
- body: Ruma<create_invite::v2::IncomingRequest>,
+ body: Ruma<create_invite::v2::Request>,
) -> Result<create_invite::v2::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1643,7 +1637,7 @@ pub async fn create_invite_route(
///
/// Gets information on all devices of the user.
pub async fn get_devices_route(
- body: Ruma<get_devices::v1::IncomingRequest>,
+ body: Ruma<get_devices::v1::Request>,
) -> Result<get_devices::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1690,7 +1684,7 @@ pub async fn get_devices_route(
///
/// Resolve a room alias to a room id.
pub async fn get_room_information_route(
- body: Ruma<get_room_information::v1::IncomingRequest>,
+ body: Ruma<get_room_information::v1::Request>,
) -> Result<get_room_information::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
@@ -1715,7 +1709,7 @@ pub async fn get_room_information_route(
///
/// Gets information on a profile.
pub async fn get_profile_information_route(
- body: Ruma<get_profile_information::v1::IncomingRequest>,
+ body: Ruma<get_profile_information::v1::Request>,
) -> Result<get_profile_information::v1::Response> {
if !services().globals.allow_federation() {
return Err(Error::bad_config("Federation is disabled."));
diff --git a/src/database/key_value/users.rs b/src/database/key_value/users.rs
index cd5a535..1cabab0 100644
--- a/src/database/key_value/users.rs
+++ b/src/database/key_value/users.rs
@@ -1,7 +1,7 @@
use std::{collections::BTreeMap, mem::size_of};
use ruma::{
- api::client::{device::Device, error::ErrorKind, filter::IncomingFilterDefinition},
+ api::client::{device::Device, error::ErrorKind, filter::FilterDefinition},
encryption::{CrossSigningKey, DeviceKeys, OneTimeKey},
events::{AnyToDeviceEvent, StateEventType},
serde::Raw,
@@ -899,7 +899,7 @@ impl service::users::Data for KeyValueDatabase {
}
/// Creates a new sync filter. Returns the filter id.
- fn create_filter(&self, user_id: &UserId, filter: &IncomingFilterDefinition) -> Result<String> {
+ fn create_filter(&self, user_id: &UserId, filter: &FilterDefinition) -> Result<String> {
let filter_id = utils::random_string(4);
let mut key = user_id.as_bytes().to_vec();
@@ -914,11 +914,7 @@ impl service::users::Data for KeyValueDatabase {
Ok(filter_id)
}
- fn get_filter(
- &self,
- user_id: &UserId,
- filter_id: &str,
- ) -> Result<Option<IncomingFilterDefinition>> {
+ fn get_filter(&self, user_id: &UserId, filter_id: &str) -> Result<Option<FilterDefinition>> {
let mut key = user_id.as_bytes().to_vec();
key.push(0xff);
key.extend_from_slice(filter_id.as_bytes());
diff --git a/src/service/rooms/event_handler/mod.rs b/src/service/rooms/event_handler/mod.rs
index b352647..85d21bf 100644
--- a/src/service/rooms/event_handler/mod.rs
+++ b/src/service/rooms/event_handler/mod.rs
@@ -638,8 +638,8 @@ impl Service {
.send_federation_request(
origin,
get_room_state_ids::v1::Request {
- room_id,
- event_id: &incoming_pdu.event_id,
+ room_id: room_id.to_owned(),
+ event_id: (&*incoming_pdu.event_id).to_owned(),
},
)
.await
@@ -1112,7 +1112,9 @@ impl Service {
.sending
.send_federation_request(
origin,
- get_event::v1::Request { event_id: &next_id },
+ get_event::v1::Request {
+ event_id: next_id.into(),
+ },
)
.await
{
@@ -1689,7 +1691,7 @@ impl Service {
.send_federation_request(
server,
get_remote_server_keys::v2::Request::new(
- origin,
+ origin.to_owned(),
MilliSecondsSinceUnixEpoch::from_system_time(
SystemTime::now()
.checked_add(Duration::from_secs(3600))
diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs
index afa12fc..1861feb 100644
--- a/src/service/sending/mod.rs
+++ b/src/service/sending/mod.rs
@@ -496,7 +496,7 @@ impl Service {
)
})?,
appservice::event::push_events::v1::Request {
- events: &pdu_jsons,
+ events: pdu_jsons,
txn_id: (&*base64::encode_config(
calculate_hash(
&events
@@ -638,9 +638,9 @@ impl Service {
let response = server_server::send_request(
server,
send_transaction_message::v1::Request {
- origin: services().globals.server_name(),
- pdus: &pdu_jsons,
- edus: &edu_jsons,
+ origin: services().globals.server_name().to_owned(),
+ pdus: pdu_jsons,
+ edus: edu_jsons,
origin_server_ts: MilliSecondsSinceUnixEpoch::now(),
transaction_id: (&*base64::encode_config(
calculate_hash(
diff --git a/src/service/uiaa/mod.rs b/src/service/uiaa/mod.rs
index 672290c..147ce4d 100644
--- a/src/service/uiaa/mod.rs
+++ b/src/service/uiaa/mod.rs
@@ -5,7 +5,7 @@ pub use data::Data;
use ruma::{
api::client::{
error::ErrorKind,
- uiaa::{AuthType, IncomingAuthData, IncomingPassword, IncomingUserIdentifier, UiaaInfo},
+ uiaa::{AuthData, AuthType, Password, UiaaInfo, UserIdentifier},
},
CanonicalJsonValue, DeviceId, UserId,
};
@@ -44,7 +44,7 @@ impl Service {
&self,
user_id: &UserId,
device_id: &DeviceId,
- auth: &IncomingAuthData,
+ auth: &AuthData,
uiaainfo: &UiaaInfo,
) -> Result<(bool, UiaaInfo)> {
let mut uiaainfo = auth
@@ -58,13 +58,13 @@ impl Service {
match auth {
// Find out what the user completed
- IncomingAuthData::Password(IncomingPassword {
+ AuthData::Password(Password {
identifier,
password,
..
}) => {
let username = match identifier {
- IncomingUserIdentifier::UserIdOrLocalpart(username) => username,
+ UserIdentifier::UserIdOrLocalpart(username) => username,
_ => {
return Err(Error::BadRequest(
ErrorKind::Unrecognized,
@@ -85,7 +85,7 @@ impl Service {
argon2::verify_encoded(&hash, password.as_bytes()).unwrap_or(false);
if !hash_matches {
- uiaainfo.auth_error = Some(ruma::api::client::error::ErrorBody {
+ uiaainfo.auth_error = Some(ruma::api::client::error::StandardErrorBody {
kind: ErrorKind::Forbidden,
message: "Invalid username or password.".to_owned(),
});
@@ -96,7 +96,7 @@ impl Service {
// Password was correct! Let's add it to `completed`
uiaainfo.completed.push(AuthType::Password);
}
- IncomingAuthData::Dummy(_) => {
+ AuthData::Dummy(_) => {
uiaainfo.completed.push(AuthType::Dummy);
}
k => error!("type not supported: {:?}", k),
diff --git a/src/service/users/data.rs b/src/service/users/data.rs
index bc1db33..8553210 100644
--- a/src/service/users/data.rs
+++ b/src/service/users/data.rs
@@ -1,6 +1,6 @@
use crate::Result;
use ruma::{
- api::client::{device::Device, filter::IncomingFilterDefinition},
+ api::client::{device::Device, filter::FilterDefinition},
encryption::{CrossSigningKey, DeviceKeys, OneTimeKey},
events::AnyToDeviceEvent,
serde::Raw,
@@ -191,11 +191,7 @@ pub trait Data: Send + Sync {
) -> Box<dyn Iterator<Item = Result<Device>> + 'a>;
/// Creates a new sync filter. Returns the filter id.
- fn create_filter(&self, user_id: &UserId, filter: &IncomingFilterDefinition) -> Result<String>;
+ fn create_filter(&self, user_id: &UserId, filter: &FilterDefinition) -> Result<String>;
- fn get_filter(
- &self,
- user_id: &UserId,
- filter_id: &str,
- ) -> Result<Option<IncomingFilterDefinition>>;
+ fn get_filter(&self, user_id: &UserId, filter_id: &str) -> Result<Option<FilterDefinition>>;
}
diff --git a/src/service/users/mod.rs b/src/service/users/mod.rs
index 9dcfa8b..6be5c89 100644
--- a/src/service/users/mod.rs
+++ b/src/service/users/mod.rs
@@ -3,7 +3,7 @@ use std::{collections::BTreeMap, mem};
pub use data::Data;
use ruma::{
- api::client::{device::Device, error::ErrorKind, filter::IncomingFilterDefinition},
+ api::client::{device::Device, error::ErrorKind, filter::FilterDefinition},
encryption::{CrossSigningKey, DeviceKeys, OneTimeKey},
events::AnyToDeviceEvent,
serde::Raw,
@@ -326,11 +326,7 @@ impl Service {
}
/// Creates a new sync filter. Returns the filter id.
- pub fn create_filter(
- &self,
- user_id: &UserId,
- filter: &IncomingFilterDefinition,
- ) -> Result<String> {
+ pub fn create_filter(&self, user_id: &UserId, filter: &FilterDefinition) -> Result<String> {
self.db.create_filter(user_id, filter)
}
@@ -338,7 +334,7 @@ impl Service {
&self,
user_id: &UserId,
filter_id: &str,
- ) -> Result<Option<IncomingFilterDefinition>> {
+ ) -> Result<Option<FilterDefinition>> {
self.db.get_filter(user_id, filter_id)
}
}
diff --git a/src/utils/error.rs b/src/utils/error.rs
index 9c8617f..0ef13ce 100644
--- a/src/utils/error.rs
+++ b/src/utils/error.rs
@@ -3,7 +3,7 @@ use std::convert::Infallible;
use http::StatusCode;
use ruma::{
api::client::{
- error::{Error as RumaError, ErrorKind},
+ error::{Error as RumaError, ErrorBody, ErrorKind},
uiaa::{UiaaInfo, UiaaResponse},
},
OwnedServerName,
@@ -131,8 +131,7 @@ impl Error {
warn!("{}: {}", status_code, message);
RumaResponse(UiaaResponse::MatrixError(RumaError {
- kind,
- message,
+ body: ErrorBody::Standard { kind, message },
status_code,
}))
}