From f053200462a6f4ecbd7dfe8fffdf5a7b7fb48fc4 Mon Sep 17 00:00:00 2001 From: Julian Sparber Date: Thu, 25 Mar 2021 11:06:24 +0100 Subject: [PATCH] ruma-client-api: Use Mxc type This also fixes the wrong mxc url in the test for joined_members. Mxc urls don't use a ":" as seperator between server name and media id. --- ruma-client-api/src/r0/directory.rs | 4 ++-- ruma-client-api/src/r0/media/create_content.rs | 5 +++-- ruma-client-api/src/r0/membership/joined_members.rs | 8 ++++---- ruma-client-api/src/r0/profile/get_avatar_url.rs | 6 +++--- ruma-client-api/src/r0/profile/set_avatar_url.rs | 6 +++--- ruma-client-api/src/r0/search/search_events.rs | 4 ++-- ruma-client-api/src/r0/user_directory/search_users.rs | 4 ++-- 7 files changed, 19 insertions(+), 18 deletions(-) diff --git a/ruma-client-api/src/r0/directory.rs b/ruma-client-api/src/r0/directory.rs index 1c61be48..2825436c 100644 --- a/ruma-client-api/src/r0/directory.rs +++ b/ruma-client-api/src/r0/directory.rs @@ -6,7 +6,7 @@ pub mod get_room_visibility; pub mod set_room_visibility; use js_int::{uint, UInt}; -use ruma_identifiers::{RoomAliasId, RoomId}; +use ruma_identifiers::{MxcUri, RoomAliasId, RoomId}; use serde::{Deserialize, Serialize}; /// A chunk of a room list response, describing one room @@ -49,7 +49,7 @@ pub struct PublicRoomsChunk { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option, + pub avatar_url: Option, } impl PublicRoomsChunk { diff --git a/ruma-client-api/src/r0/media/create_content.rs b/ruma-client-api/src/r0/media/create_content.rs index fa039bfe..3acddcac 100644 --- a/ruma-client-api/src/r0/media/create_content.rs +++ b/ruma-client-api/src/r0/media/create_content.rs @@ -1,6 +1,7 @@ //! [POST /_matrix/media/r0/upload](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-media-r0-upload) use ruma_api::ruma_api; +use ruma_identifiers::MxcUri; ruma_api! { metadata: { @@ -29,7 +30,7 @@ ruma_api! { response: { /// The MXC URI for the uploaded content. - pub content_uri: String, + pub content_uri: MxcUri, /// The [BlurHash](https://blurha.sh) for the uploaded content. /// @@ -53,7 +54,7 @@ impl<'a> Request<'a> { impl Response { /// Creates a new `Response` with the given MXC URI. - pub fn new(content_uri: String) -> Self { + pub fn new(content_uri: MxcUri) -> Self { Self { content_uri, #[cfg(feature = "unstable-pre-spec")] diff --git a/ruma-client-api/src/r0/membership/joined_members.rs b/ruma-client-api/src/r0/membership/joined_members.rs index cc89b940..d037bc1d 100644 --- a/ruma-client-api/src/r0/membership/joined_members.rs +++ b/ruma-client-api/src/r0/membership/joined_members.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use ruma_api::ruma_api; -use ruma_identifiers::{RoomId, UserId}; +use ruma_identifiers::{MxcUri, RoomId, UserId}; use serde::{Deserialize, Serialize}; ruma_api! { @@ -59,7 +59,7 @@ pub struct RoomMember { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option, + pub avatar_url: Option, } impl RoomMember { @@ -80,13 +80,13 @@ mod test { assert_matches!( from_json_value::(json!({ "display_name": "alice", - "avatar_url": "mxc://localhost:wefuiwegh8742w", + "avatar_url": "mxc://localhost/wefuiwegh8742w", })).unwrap(), RoomMember { display_name: Some(display_name), avatar_url: Some(avatar_url), } if display_name == "alice" - && avatar_url == "mxc://localhost:wefuiwegh8742w" + && avatar_url.to_string() == "mxc://localhost/wefuiwegh8742w" ); #[cfg(feature = "compat")] diff --git a/ruma-client-api/src/r0/profile/get_avatar_url.rs b/ruma-client-api/src/r0/profile/get_avatar_url.rs index 2a2cd6b2..074e5dec 100644 --- a/ruma-client-api/src/r0/profile/get_avatar_url.rs +++ b/ruma-client-api/src/r0/profile/get_avatar_url.rs @@ -1,7 +1,7 @@ //! [GET /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-profile-userid-avatar-url) use ruma_api::ruma_api; -use ruma_identifiers::UserId; +use ruma_identifiers::{MxcUri, UserId}; ruma_api! { metadata: { @@ -30,7 +30,7 @@ ruma_api! { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option + pub avatar_url: Option } error: crate::Error @@ -45,7 +45,7 @@ impl<'a> Request<'a> { impl Response { /// Creates a new `Response` with the given avatar URL. - pub fn new(avatar_url: Option) -> Self { + pub fn new(avatar_url: Option) -> Self { Self { avatar_url } } } diff --git a/ruma-client-api/src/r0/profile/set_avatar_url.rs b/ruma-client-api/src/r0/profile/set_avatar_url.rs index 769f67ec..51610bed 100644 --- a/ruma-client-api/src/r0/profile/set_avatar_url.rs +++ b/ruma-client-api/src/r0/profile/set_avatar_url.rs @@ -1,7 +1,7 @@ //! [PUT /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-profile-userid-avatar-url) use ruma_api::ruma_api; -use ruma_identifiers::UserId; +use ruma_identifiers::{MxcUri, UserId}; ruma_api! { metadata: { @@ -26,7 +26,7 @@ ruma_api! { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option<&'a str>, + pub avatar_url: Option<&'a MxcUri>, } #[derive(Default)] @@ -37,7 +37,7 @@ ruma_api! { impl<'a> Request<'a> { /// Creates a new `Request` with the given user ID and avatar URL. - pub fn new(user_id: &'a UserId, avatar_url: Option<&'a str>) -> Self { + pub fn new(user_id: &'a UserId, avatar_url: Option<&'a MxcUri>) -> Self { Self { user_id, avatar_url } } } diff --git a/ruma-client-api/src/r0/search/search_events.rs b/ruma-client-api/src/r0/search/search_events.rs index c7478e6a..c68a80cf 100644 --- a/ruma-client-api/src/r0/search/search_events.rs +++ b/ruma-client-api/src/r0/search/search_events.rs @@ -5,7 +5,7 @@ use std::collections::BTreeMap; use js_int::{uint, UInt}; use ruma_api::ruma_api; use ruma_events::{AnyRoomEvent, AnyStateEvent}; -use ruma_identifiers::{EventId, RoomId, UserId}; +use ruma_identifiers::{EventId, MxcUri, RoomId, UserId}; use ruma_serde::{Outgoing, Raw, StringEnum}; use serde::{Deserialize, Serialize}; @@ -441,7 +441,7 @@ pub struct UserProfile { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option, + pub avatar_url: Option, /// The user's display name, if set. #[serde(skip_serializing_if = "Option::is_none")] diff --git a/ruma-client-api/src/r0/user_directory/search_users.rs b/ruma-client-api/src/r0/user_directory/search_users.rs index 43fbc98a..919890e8 100644 --- a/ruma-client-api/src/r0/user_directory/search_users.rs +++ b/ruma-client-api/src/r0/user_directory/search_users.rs @@ -2,7 +2,7 @@ use js_int::{uint, UInt}; use ruma_api::ruma_api; -use ruma_identifiers::UserId; +use ruma_identifiers::{MxcUri, UserId}; use serde::{Deserialize, Serialize}; ruma_api! { @@ -83,5 +83,5 @@ pub struct User { feature = "compat", serde(default, deserialize_with = "ruma_serde::empty_string_as_none") )] - pub avatar_url: Option, + pub avatar_url: Option, }