[fractal] Support matrix servers in a subdirectory.



commit efd874ebb343a682356d47fdfe7b488cb104edaa
Author: Nils Asmussen <nils os inf tu-dresden de>
Date:   Sat Feb 29 16:36:15 2020 +0100

    Support matrix servers in a subdirectory.
    
    Previously, the user-provided URL was join'ed with an absolute path
    (e.g. "/_matrix/..."). Thus, the path was replaced with the given one.
    In other words, fractal assumed that matrix servers are always available
    at "/".
    
    This commit appends a relative path, so that matrix servers in
    subdirectories are supported as well.

 .../src/identity/r0/association/msisdn/submit_token.rs               | 2 +-
 fractal-matrix-api/src/r0/account/change_password.rs                 | 2 +-
 fractal-matrix-api/src/r0/account/deactivate.rs                      | 2 +-
 fractal-matrix-api/src/r0/account/login.rs                           | 2 +-
 fractal-matrix-api/src/r0/account/logout.rs                          | 2 +-
 fractal-matrix-api/src/r0/account/register.rs                        | 2 +-
 fractal-matrix-api/src/r0/config/get_global_account_data.rs          | 2 +-
 fractal-matrix-api/src/r0/config/set_global_account_data.rs          | 2 +-
 fractal-matrix-api/src/r0/config/set_room_account_data.rs            | 2 +-
 fractal-matrix-api/src/r0/contact/create.rs                          | 2 +-
 fractal-matrix-api/src/r0/contact/delete.rs                          | 2 +-
 fractal-matrix-api/src/r0/contact/get_identifiers.rs                 | 2 +-
 .../src/r0/contact/request_verification_token_email.rs               | 2 +-
 .../src/r0/contact/request_verification_token_msisdn.rs              | 2 +-
 fractal-matrix-api/src/r0/context/get_context.rs                     | 2 +-
 fractal-matrix-api/src/r0/directory/post_public_rooms.rs             | 2 +-
 fractal-matrix-api/src/r0/media/create_content.rs                    | 2 +-
 fractal-matrix-api/src/r0/media/get_content.rs                       | 2 +-
 fractal-matrix-api/src/r0/media/get_content_thumbnail.rs             | 2 +-
 fractal-matrix-api/src/r0/membership/invite_user.rs                  | 2 +-
 fractal-matrix-api/src/r0/membership/join_room_by_id_or_alias.rs     | 2 +-
 fractal-matrix-api/src/r0/membership/leave_room.rs                   | 2 +-
 fractal-matrix-api/src/r0/message/create_message_event.rs            | 2 +-
 fractal-matrix-api/src/r0/message/get_message_events.rs              | 2 +-
 fractal-matrix-api/src/r0/profile/get_display_name.rs                | 2 +-
 fractal-matrix-api/src/r0/profile/get_profile.rs                     | 2 +-
 fractal-matrix-api/src/r0/profile/set_avatar_url.rs                  | 5 +----
 fractal-matrix-api/src/r0/profile/set_display_name.rs                | 2 +-
 fractal-matrix-api/src/r0/read_marker/set_read_marker.rs             | 5 +----
 fractal-matrix-api/src/r0/redact/redact_event.rs                     | 2 +-
 fractal-matrix-api/src/r0/room/create_room.rs                        | 2 +-
 fractal-matrix-api/src/r0/search/user.rs                             | 2 +-
 fractal-matrix-api/src/r0/server/domain_info.rs                      | 2 +-
 fractal-matrix-api/src/r0/state/create_state_events_for_key.rs       | 2 +-
 fractal-matrix-api/src/r0/state/get_state_events_for_key.rs          | 2 +-
 fractal-matrix-api/src/r0/sync/get_joined_members.rs                 | 2 +-
 fractal-matrix-api/src/r0/sync/sync_events.rs                        | 2 +-
 fractal-matrix-api/src/r0/tag/create_tag.rs                          | 2 +-
 fractal-matrix-api/src/r0/tag/delete_tag.rs                          | 2 +-
 fractal-matrix-api/src/r0/thirdparty/get_supported_protocols.rs      | 2 +-
 fractal-matrix-api/src/r0/typing.rs                                  | 2 +-
 41 files changed, 41 insertions(+), 47 deletions(-)
---
diff --git a/fractal-matrix-api/src/identity/r0/association/msisdn/submit_token.rs 
b/fractal-matrix-api/src/identity/r0/association/msisdn/submit_token.rs
index 42e8813c..80e9b2cc 100644
--- a/fractal-matrix-api/src/identity/r0/association/msisdn/submit_token.rs
+++ b/fractal-matrix-api/src/identity/r0/association/msisdn/submit_token.rs
@@ -18,7 +18,7 @@ pub struct Response {
 
 pub fn request(base: Url, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/identity/api/v1/validate/msisdn/submitToken")
+        .join("_matrix/identity/api/v1/validate/msisdn/submitToken")
         .expect("Malformed URL in msisdn submit_token");
 
     Client::new().post(url).json(body).build()
diff --git a/fractal-matrix-api/src/r0/account/change_password.rs 
b/fractal-matrix-api/src/r0/account/change_password.rs
index 9100e680..4059afc6 100644
--- a/fractal-matrix-api/src/r0/account/change_password.rs
+++ b/fractal-matrix-api/src/r0/account/change_password.rs
@@ -20,7 +20,7 @@ pub struct Body {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/password")
+        .join("_matrix/client/r0/account/password")
         .expect("Malformed URL in change_password");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/account/deactivate.rs b/fractal-matrix-api/src/r0/account/deactivate.rs
index eae2edc6..b5fedbbd 100644
--- a/fractal-matrix-api/src/r0/account/deactivate.rs
+++ b/fractal-matrix-api/src/r0/account/deactivate.rs
@@ -19,7 +19,7 @@ pub struct Body {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/deactivate")
+        .join("_matrix/client/r0/account/deactivate")
         .expect("Malformed URL in deactivate");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/account/login.rs b/fractal-matrix-api/src/r0/account/login.rs
index b437eaae..39a76422 100644
--- a/fractal-matrix-api/src/r0/account/login.rs
+++ b/fractal-matrix-api/src/r0/account/login.rs
@@ -38,7 +38,7 @@ pub struct Response {
 
 pub fn request(base: Url, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/login")
+        .join("_matrix/client/r0/login")
         .expect("Malformed URL in login");
 
     Client::new().post(url).json(body).build()
diff --git a/fractal-matrix-api/src/r0/account/logout.rs b/fractal-matrix-api/src/r0/account/logout.rs
index ad8bed4a..525da7fe 100644
--- a/fractal-matrix-api/src/r0/account/logout.rs
+++ b/fractal-matrix-api/src/r0/account/logout.rs
@@ -12,7 +12,7 @@ pub struct Parameters {
 
 pub fn request(base: Url, params: &Parameters) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/logout")
+        .join("_matrix/client/r0/logout")
         .expect("Malformed URL in logout");
 
     Client::new().post(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/account/register.rs b/fractal-matrix-api/src/r0/account/register.rs
index d15d1fdb..546586f6 100644
--- a/fractal-matrix-api/src/r0/account/register.rs
+++ b/fractal-matrix-api/src/r0/account/register.rs
@@ -62,7 +62,7 @@ pub struct Response {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/register")
+        .join("_matrix/client/r0/register")
         .expect("Malformed URL in register");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/config/get_global_account_data.rs 
b/fractal-matrix-api/src/r0/config/get_global_account_data.rs
index b11e327c..9630575b 100644
--- a/fractal-matrix-api/src/r0/config/get_global_account_data.rs
+++ b/fractal-matrix-api/src/r0/config/get_global_account_data.rs
@@ -19,7 +19,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/user/{}/account_data/{}",
+            "_matrix/client/r0/user/{}/account_data/{}",
             user_id, event_type,
         ))
         .expect("Malformed URL in get_global_account_data");
diff --git a/fractal-matrix-api/src/r0/config/set_global_account_data.rs 
b/fractal-matrix-api/src/r0/config/set_global_account_data.rs
index b82ef6b4..5e95a77c 100644
--- a/fractal-matrix-api/src/r0/config/set_global_account_data.rs
+++ b/fractal-matrix-api/src/r0/config/set_global_account_data.rs
@@ -21,7 +21,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/user/{}/account_data/{}",
+            "_matrix/client/r0/user/{}/account_data/{}",
             user_id, event_type,
         ))
         .expect("Malformed URL in set_global_account_data");
diff --git a/fractal-matrix-api/src/r0/config/set_room_account_data.rs 
b/fractal-matrix-api/src/r0/config/set_room_account_data.rs
index 7ee74db1..12bc31c2 100644
--- a/fractal-matrix-api/src/r0/config/set_room_account_data.rs
+++ b/fractal-matrix-api/src/r0/config/set_room_account_data.rs
@@ -22,7 +22,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/user/{}/rooms/{}/account_data/{}",
+            "_matrix/client/r0/user/{}/rooms/{}/account_data/{}",
             user_id, room_id, event_type,
         ))
         .expect("Malformed URL in set_room_account_data");
diff --git a/fractal-matrix-api/src/r0/contact/create.rs b/fractal-matrix-api/src/r0/contact/create.rs
index ec8a27f5..55edc6aa 100644
--- a/fractal-matrix-api/src/r0/contact/create.rs
+++ b/fractal-matrix-api/src/r0/contact/create.rs
@@ -21,7 +21,7 @@ pub struct Body {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/3pid")
+        .join("_matrix/client/r0/account/3pid")
         .expect("Malformed URL in contact create");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/contact/delete.rs b/fractal-matrix-api/src/r0/contact/delete.rs
index 445c6216..06e69fff 100644
--- a/fractal-matrix-api/src/r0/contact/delete.rs
+++ b/fractal-matrix-api/src/r0/contact/delete.rs
@@ -19,7 +19,7 @@ pub struct Body {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/3pid/delete")
+        .join("_matrix/client/r0/account/3pid/delete")
         .expect("Malformed URL in contact delete");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/contact/get_identifiers.rs 
b/fractal-matrix-api/src/r0/contact/get_identifiers.rs
index c68578e7..aedae090 100644
--- a/fractal-matrix-api/src/r0/contact/get_identifiers.rs
+++ b/fractal-matrix-api/src/r0/contact/get_identifiers.rs
@@ -27,7 +27,7 @@ pub struct ThirdPartyIdentifier {
 
 pub fn request(base: Url, params: &Parameters) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/3pid")
+        .join("_matrix/client/r0/account/3pid")
         .expect("Malformed URL in get_identifiers");
 
     Client::new().get(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/contact/request_verification_token_email.rs 
b/fractal-matrix-api/src/r0/contact/request_verification_token_email.rs
index 4f4e7955..d778d136 100644
--- a/fractal-matrix-api/src/r0/contact/request_verification_token_email.rs
+++ b/fractal-matrix-api/src/r0/contact/request_verification_token_email.rs
@@ -43,7 +43,7 @@ pub struct InfoFailed {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/3pid/email/requestToken")
+        .join("_matrix/client/r0/account/3pid/email/requestToken")
         .expect("Malformed URL in request_verification_token_email");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/contact/request_verification_token_msisdn.rs 
b/fractal-matrix-api/src/r0/contact/request_verification_token_msisdn.rs
index 9d419952..c8a9743e 100644
--- a/fractal-matrix-api/src/r0/contact/request_verification_token_msisdn.rs
+++ b/fractal-matrix-api/src/r0/contact/request_verification_token_msisdn.rs
@@ -44,7 +44,7 @@ pub struct InfoFailed {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/account/3pid/msisdn/requestToken")
+        .join("_matrix/client/r0/account/3pid/msisdn/requestToken")
         .expect("Malformed URL in request_verification_token_msisdn");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/context/get_context.rs 
b/fractal-matrix-api/src/r0/context/get_context.rs
index 04b43f63..f2fbcd4f 100644
--- a/fractal-matrix-api/src/r0/context/get_context.rs
+++ b/fractal-matrix-api/src/r0/context/get_context.rs
@@ -42,7 +42,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/context/{}",
+            "_matrix/client/r0/rooms/{}/context/{}",
             room_id, event_id,
         ))
         .expect("Malformed URL in post_public_rooms");
diff --git a/fractal-matrix-api/src/r0/directory/post_public_rooms.rs 
b/fractal-matrix-api/src/r0/directory/post_public_rooms.rs
index fbd73c88..4bae7686 100644
--- a/fractal-matrix-api/src/r0/directory/post_public_rooms.rs
+++ b/fractal-matrix-api/src/r0/directory/post_public_rooms.rs
@@ -100,7 +100,7 @@ pub struct Chunk {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/publicRooms")
+        .join("_matrix/client/r0/publicRooms")
         .expect("Malformed URL in post_public_rooms");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/media/create_content.rs 
b/fractal-matrix-api/src/r0/media/create_content.rs
index 24719bbf..9e0c6b7d 100644
--- a/fractal-matrix-api/src/r0/media/create_content.rs
+++ b/fractal-matrix-api/src/r0/media/create_content.rs
@@ -23,7 +23,7 @@ pub fn request(base: Url, params: &Parameters, contents: Vec<u8>) -> Result<Requ
     let (mime, _) = gio::content_type_guess(None, &contents);
 
     let url = base
-        .join("/_matrix/media/r0/upload")
+        .join("_matrix/media/r0/upload")
         .expect("Malformed URL in upload");
 
     Client::new()
diff --git a/fractal-matrix-api/src/r0/media/get_content.rs b/fractal-matrix-api/src/r0/media/get_content.rs
index bf8cb0ea..7f1e9e46 100644
--- a/fractal-matrix-api/src/r0/media/get_content.rs
+++ b/fractal-matrix-api/src/r0/media/get_content.rs
@@ -24,7 +24,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/media/r0/download/{}/{}",
+            "_matrix/media/r0/download/{}/{}",
             server, media_id,
         ))
         .expect("Malformed URL in get_content");
diff --git a/fractal-matrix-api/src/r0/media/get_content_thumbnail.rs 
b/fractal-matrix-api/src/r0/media/get_content_thumbnail.rs
index 9ec73e29..4cc4a22b 100644
--- a/fractal-matrix-api/src/r0/media/get_content_thumbnail.rs
+++ b/fractal-matrix-api/src/r0/media/get_content_thumbnail.rs
@@ -28,7 +28,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/media/r0/thumbnail/{}/{}",
+            "_matrix/media/r0/thumbnail/{}/{}",
             server, media_id,
         ))
         .expect("Malformed URL in get_content_thumbnail");
diff --git a/fractal-matrix-api/src/r0/membership/invite_user.rs 
b/fractal-matrix-api/src/r0/membership/invite_user.rs
index 2d209a20..c36f74b4 100644
--- a/fractal-matrix-api/src/r0/membership/invite_user.rs
+++ b/fractal-matrix-api/src/r0/membership/invite_user.rs
@@ -23,7 +23,7 @@ pub fn request(
     body: &Body,
 ) -> Result<Request, Error> {
     let url = base
-        .join(&format!("/_matrix/client/r0/rooms/{}/invite", room_id))
+        .join(&format!("_matrix/client/r0/rooms/{}/invite", room_id))
         .expect("Malformed URL in leave_room");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/membership/join_room_by_id_or_alias.rs 
b/fractal-matrix-api/src/r0/membership/join_room_by_id_or_alias.rs
index 4c6244ed..1ee1e524 100644
--- a/fractal-matrix-api/src/r0/membership/join_room_by_id_or_alias.rs
+++ b/fractal-matrix-api/src/r0/membership/join_room_by_id_or_alias.rs
@@ -24,7 +24,7 @@ pub fn request(
     params: &Parameters,
 ) -> Result<Request, Error> {
     let url = base
-        .join(&format!("/_matrix/client/r0/join/{}", room_id_or_alias))
+        .join(&format!("_matrix/client/r0/join/{}", room_id_or_alias))
         .expect("Malformed URL in join_room_by_id_or_alias");
 
     Client::new().post(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/membership/leave_room.rs 
b/fractal-matrix-api/src/r0/membership/leave_room.rs
index 69a6721a..b5256218 100644
--- a/fractal-matrix-api/src/r0/membership/leave_room.rs
+++ b/fractal-matrix-api/src/r0/membership/leave_room.rs
@@ -13,7 +13,7 @@ pub struct Parameters {
 
 pub fn request(base: Url, room_id: &RoomId, params: &Parameters) -> Result<Request, Error> {
     let url = base
-        .join(&format!("/_matrix/client/r0/rooms/{}/leave", room_id))
+        .join(&format!("_matrix/client/r0/rooms/{}/leave", room_id))
         .expect("Malformed URL in leave_room");
 
     Client::new().post(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/message/create_message_event.rs 
b/fractal-matrix-api/src/r0/message/create_message_event.rs
index b1c37f6c..e578329e 100644
--- a/fractal-matrix-api/src/r0/message/create_message_event.rs
+++ b/fractal-matrix-api/src/r0/message/create_message_event.rs
@@ -27,7 +27,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/send/{}/{}",
+            "_matrix/client/r0/rooms/{}/send/{}/{}",
             room_id, event_type, txn_id,
         ))
         .expect("Malformed URL in create_message_event");
diff --git a/fractal-matrix-api/src/r0/message/get_message_events.rs 
b/fractal-matrix-api/src/r0/message/get_message_events.rs
index 6cd7994f..a89acc6a 100644
--- a/fractal-matrix-api/src/r0/message/get_message_events.rs
+++ b/fractal-matrix-api/src/r0/message/get_message_events.rs
@@ -44,7 +44,7 @@ pub struct Response {
 
 pub fn request(base: Url, params: &Parameters, room_id: &RoomId) -> Result<Request, Error> {
     let url = base
-        .join(&format!("/_matrix/client/r0/rooms/{}/messages", room_id))
+        .join(&format!("_matrix/client/r0/rooms/{}/messages", room_id))
         .expect("Malformed URL in get_message_events");
 
     Client::new().get(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/profile/get_display_name.rs 
b/fractal-matrix-api/src/r0/profile/get_display_name.rs
index 43fb0980..b4716e03 100644
--- a/fractal-matrix-api/src/r0/profile/get_display_name.rs
+++ b/fractal-matrix-api/src/r0/profile/get_display_name.rs
@@ -13,7 +13,7 @@ pub struct Response {
 pub fn request(base: Url, user_id: &UserId) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/profile/{}/displayname",
+            "_matrix/client/r0/profile/{}/displayname",
             user_id
         ))
         .expect("Malformed URL in get_display_name");
diff --git a/fractal-matrix-api/src/r0/profile/get_profile.rs 
b/fractal-matrix-api/src/r0/profile/get_profile.rs
index 48ca346f..04a01838 100644
--- a/fractal-matrix-api/src/r0/profile/get_profile.rs
+++ b/fractal-matrix-api/src/r0/profile/get_profile.rs
@@ -16,7 +16,7 @@ pub struct Response {
 
 pub fn request(base: Url, user_id: &UserId) -> Result<Request, Error> {
     let url = base
-        .join(&format!("/_matrix/client/r0/profile/{}", user_id))
+        .join(&format!("_matrix/client/r0/profile/{}", user_id))
         .expect("Malformed URL in get_profile_avatar");
 
     Client::new().get(url).build()
diff --git a/fractal-matrix-api/src/r0/profile/set_avatar_url.rs 
b/fractal-matrix-api/src/r0/profile/set_avatar_url.rs
index e5582535..7d37943c 100644
--- a/fractal-matrix-api/src/r0/profile/set_avatar_url.rs
+++ b/fractal-matrix-api/src/r0/profile/set_avatar_url.rs
@@ -26,10 +26,7 @@ pub fn request(
     user_id: &UserId,
 ) -> Result<Request, Error> {
     let url = base
-        .join(&format!(
-            "/_matrix/client/r0/profile/{}/avatar_url",
-            user_id
-        ))
+        .join(&format!("_matrix/client/r0/profile/{}/avatar_url", user_id))
         .expect("Malformed URL in set_avatar_url");
 
     Client::new().put(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/profile/set_display_name.rs 
b/fractal-matrix-api/src/r0/profile/set_display_name.rs
index 53c7169c..dbc4f0a6 100644
--- a/fractal-matrix-api/src/r0/profile/set_display_name.rs
+++ b/fractal-matrix-api/src/r0/profile/set_display_name.rs
@@ -25,7 +25,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/profile/{}/displayname",
+            "_matrix/client/r0/profile/{}/displayname",
             user_id
         ))
         .expect("Malformed URL in set_display_name");
diff --git a/fractal-matrix-api/src/r0/read_marker/set_read_marker.rs 
b/fractal-matrix-api/src/r0/read_marker/set_read_marker.rs
index 3bc58d78..b7e6c6ba 100644
--- a/fractal-matrix-api/src/r0/read_marker/set_read_marker.rs
+++ b/fractal-matrix-api/src/r0/read_marker/set_read_marker.rs
@@ -26,10 +26,7 @@ pub fn request(
     room_id: &RoomId,
 ) -> Result<Request, Error> {
     let url = base
-        .join(&format!(
-            "/_matrix/client/r0/rooms/{}/read_markers",
-            room_id
-        ))
+        .join(&format!("_matrix/client/r0/rooms/{}/read_markers", room_id))
         .expect("Malformed URL in set_read_marker");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/redact/redact_event.rs 
b/fractal-matrix-api/src/r0/redact/redact_event.rs
index d193ce5f..e8af4955 100644
--- a/fractal-matrix-api/src/r0/redact/redact_event.rs
+++ b/fractal-matrix-api/src/r0/redact/redact_event.rs
@@ -32,7 +32,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/redact/{}/{}",
+            "_matrix/client/r0/rooms/{}/redact/{}/{}",
             room_id, event_type, txn_id,
         ))
         .expect("Malformed URL in redact_event");
diff --git a/fractal-matrix-api/src/r0/room/create_room.rs b/fractal-matrix-api/src/r0/room/create_room.rs
index 328691c6..400652a2 100644
--- a/fractal-matrix-api/src/r0/room/create_room.rs
+++ b/fractal-matrix-api/src/r0/room/create_room.rs
@@ -65,7 +65,7 @@ pub struct Response {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/createRoom")
+        .join("_matrix/client/r0/createRoom")
         .expect("Malformed URL in create_room");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/search/user.rs b/fractal-matrix-api/src/r0/search/user.rs
index 55e97afa..eb68cee9 100644
--- a/fractal-matrix-api/src/r0/search/user.rs
+++ b/fractal-matrix-api/src/r0/search/user.rs
@@ -46,7 +46,7 @@ pub struct User {
 
 pub fn request(base: Url, params: &Parameters, body: &Body) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/user_directory/search")
+        .join("_matrix/client/r0/user_directory/search")
         .expect("Malformed URL in user_directory");
 
     Client::new().post(url).query(params).json(body).build()
diff --git a/fractal-matrix-api/src/r0/server/domain_info.rs b/fractal-matrix-api/src/r0/server/domain_info.rs
index 9833e343..524746a8 100644
--- a/fractal-matrix-api/src/r0/server/domain_info.rs
+++ b/fractal-matrix-api/src/r0/server/domain_info.rs
@@ -27,7 +27,7 @@ pub struct IDServerInfo {
 
 pub fn request(base: Url) -> Result<Request, Error> {
     let url = base
-        .join("/.well-known/matrix/client")
+        .join(".well-known/matrix/client")
         .expect("Malformed URL in domain_info");
 
     Client::new().get(url).build()
diff --git a/fractal-matrix-api/src/r0/state/create_state_events_for_key.rs 
b/fractal-matrix-api/src/r0/state/create_state_events_for_key.rs
index 37586882..48d9f19c 100644
--- a/fractal-matrix-api/src/r0/state/create_state_events_for_key.rs
+++ b/fractal-matrix-api/src/r0/state/create_state_events_for_key.rs
@@ -22,7 +22,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/state/{}/",
+            "_matrix/client/r0/rooms/{}/state/{}/",
             room_id, state_keys,
         ))
         .expect("Malformed URL in get_state_events_for_key");
diff --git a/fractal-matrix-api/src/r0/state/get_state_events_for_key.rs 
b/fractal-matrix-api/src/r0/state/get_state_events_for_key.rs
index 37154d73..7adeb12c 100644
--- a/fractal-matrix-api/src/r0/state/get_state_events_for_key.rs
+++ b/fractal-matrix-api/src/r0/state/get_state_events_for_key.rs
@@ -20,7 +20,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/state/{}/",
+            "_matrix/client/r0/rooms/{}/state/{}/",
             room_id, state_keys,
         ))
         .expect("Malformed URL in get_state_events_for_key");
diff --git a/fractal-matrix-api/src/r0/sync/get_joined_members.rs 
b/fractal-matrix-api/src/r0/sync/get_joined_members.rs
index dc65c18c..7ba1f4af 100644
--- a/fractal-matrix-api/src/r0/sync/get_joined_members.rs
+++ b/fractal-matrix-api/src/r0/sync/get_joined_members.rs
@@ -30,7 +30,7 @@ pub struct RoomMember {
 pub fn request(base: Url, room_id: &RoomId, params: &Parameters) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/joined_members",
+            "_matrix/client/r0/rooms/{}/joined_members",
             room_id
         ))
         .expect("Malformed URL in get_joined_members");
diff --git a/fractal-matrix-api/src/r0/sync/sync_events.rs b/fractal-matrix-api/src/r0/sync/sync_events.rs
index 945ad7e5..f03cfce6 100644
--- a/fractal-matrix-api/src/r0/sync/sync_events.rs
+++ b/fractal-matrix-api/src/r0/sync/sync_events.rs
@@ -224,7 +224,7 @@ pub struct DeviceLists {
 
 pub fn request(base: Url, params: &Parameters) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/sync")
+        .join("_matrix/client/r0/sync")
         .expect("Malformed URL in sync_events");
 
     Client::new().get(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/tag/create_tag.rs b/fractal-matrix-api/src/r0/tag/create_tag.rs
index 5ecd405b..f71870dd 100644
--- a/fractal-matrix-api/src/r0/tag/create_tag.rs
+++ b/fractal-matrix-api/src/r0/tag/create_tag.rs
@@ -28,7 +28,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/user/{}/rooms/{}/tags/{}",
+            "_matrix/client/r0/user/{}/rooms/{}/tags/{}",
             user_id, room_id, tag
         ))
         .expect("Malformed URL in create_tag");
diff --git a/fractal-matrix-api/src/r0/tag/delete_tag.rs b/fractal-matrix-api/src/r0/tag/delete_tag.rs
index f7ad039d..dd3210e4 100644
--- a/fractal-matrix-api/src/r0/tag/delete_tag.rs
+++ b/fractal-matrix-api/src/r0/tag/delete_tag.rs
@@ -20,7 +20,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/user/{}/rooms/{}/tags/{}",
+            "_matrix/client/r0/user/{}/rooms/{}/tags/{}",
             user_id, room_id, tag
         ))
         .expect("Malformed URL in delete_tag");
diff --git a/fractal-matrix-api/src/r0/thirdparty/get_supported_protocols.rs 
b/fractal-matrix-api/src/r0/thirdparty/get_supported_protocols.rs
index 680cc26d..2c06b2c9 100644
--- a/fractal-matrix-api/src/r0/thirdparty/get_supported_protocols.rs
+++ b/fractal-matrix-api/src/r0/thirdparty/get_supported_protocols.rs
@@ -49,7 +49,7 @@ pub struct ProtocolInstance {
 
 pub fn request(base: Url, params: &Parameters) -> Result<Request, Error> {
     let url = base
-        .join("/_matrix/client/r0/thirdparty/protocols")
+        .join("_matrix/client/r0/thirdparty/protocols")
         .expect("Wrong URL in get_supported_protocols");
 
     Client::new().get(url).query(params).build()
diff --git a/fractal-matrix-api/src/r0/typing.rs b/fractal-matrix-api/src/r0/typing.rs
index a558aee4..43046523 100644
--- a/fractal-matrix-api/src/r0/typing.rs
+++ b/fractal-matrix-api/src/r0/typing.rs
@@ -50,7 +50,7 @@ pub fn request(
 ) -> Result<Request, Error> {
     let url = base
         .join(&format!(
-            "/_matrix/client/r0/rooms/{}/typing/{}",
+            "_matrix/client/r0/rooms/{}/typing/{}",
             room_id, user_id,
         ))
         .expect("Malformed URL in typing");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]