From 457726017b2bb2bd810a74f83b9244dda3e8c324 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sun, 13 Feb 2022 10:55:11 +0100 Subject: [PATCH] api: Make metadata path field optional --- crates/ruma-api-macros/src/api.rs | 2 +- crates/ruma-api-macros/src/api/metadata.rs | 4 ++-- crates/ruma-api/src/metadata.rs | 2 +- crates/ruma-api/tests/manual_endpoint_impl.rs | 4 ++-- crates/ruma-api/tests/select_path.rs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/ruma-api-macros/src/api.rs b/crates/ruma-api-macros/src/api.rs index dbabf9f1..a10829e1 100644 --- a/crates/ruma-api-macros/src/api.rs +++ b/crates/ruma-api-macros/src/api.rs @@ -47,7 +47,6 @@ impl Api { let description = &metadata.description; let method = &metadata.method; let name = &metadata.name; - let path = &metadata.path; let unstable_path = util::map_option_literal(&metadata.unstable_path); let r0_path = util::map_option_literal(&metadata.r0_path); let stable_path = util::map_option_literal(&metadata.stable_path); @@ -75,6 +74,7 @@ impl Api { } }) .collect(); + let path = util::map_option_literal(&metadata.path); let added = util::map_option_literal(&metadata.added); let deprecated = util::map_option_literal(&metadata.deprecated); let removed = util::map_option_literal(&metadata.removed); diff --git a/crates/ruma-api-macros/src/api/metadata.rs b/crates/ruma-api-macros/src/api/metadata.rs index 8fb932f9..92579430 100644 --- a/crates/ruma-api-macros/src/api/metadata.rs +++ b/crates/ruma-api-macros/src/api/metadata.rs @@ -46,7 +46,7 @@ pub struct Metadata { pub name: LitStr, /// The path field. (deprecated) - pub path: EndpointPath, + pub path: Option, /// The unstable path field. pub unstable_path: Option, @@ -179,7 +179,7 @@ impl Parse for Metadata { description: description.ok_or_else(|| missing_field("description"))?, method: method.ok_or_else(|| missing_field("method"))?, name: name.ok_or_else(|| missing_field("name"))?, - path: path.ok_or_else(|| missing_field("path"))?, + path, unstable_path, r0_path, stable_path, diff --git a/crates/ruma-api/src/metadata.rs b/crates/ruma-api/src/metadata.rs index 1a35e540..fc34980d 100644 --- a/crates/ruma-api/src/metadata.rs +++ b/crates/ruma-api/src/metadata.rs @@ -22,7 +22,7 @@ pub struct Metadata { pub name: &'static str, /// (DEPRECATED) - pub path: &'static str, + pub path: Option<&'static str>, /// The unstable path of this endpoint's URL, often `None`, used for developmental /// purposes. diff --git a/crates/ruma-api/tests/manual_endpoint_impl.rs b/crates/ruma-api/tests/manual_endpoint_impl.rs index 3a29fd4b..490b6007 100644 --- a/crates/ruma-api/tests/manual_endpoint_impl.rs +++ b/crates/ruma-api/tests/manual_endpoint_impl.rs @@ -28,7 +28,7 @@ const METADATA: Metadata = Metadata { description: "Add an alias to a room.", method: Method::PUT, name: "create_alias", - path: "/_matrix/client/r0/directory/room/:room_alias", + path: Some("/_matrix/client/r0/directory/room/:room_alias"), unstable_path: None, r0_path: None, stable_path: None, @@ -52,7 +52,7 @@ impl OutgoingRequest for Request { // FIXME: properly integrate _considering_versions: &'_ [MatrixVersion], ) -> Result, IntoHttpError> { - let url = (base_url.to_owned() + METADATA.path) + let url = (base_url.to_owned() + METADATA.path.unwrap()) .replace(":room_alias", &self.room_alias.to_string()); let request_body = RequestBody { room_id: self.room_id }; diff --git a/crates/ruma-api/tests/select_path.rs b/crates/ruma-api/tests/select_path.rs index de72beb8..4b55ebe9 100644 --- a/crates/ruma-api/tests/select_path.rs +++ b/crates/ruma-api/tests/select_path.rs @@ -11,7 +11,7 @@ const BASE: Metadata = Metadata { description: "", method: Method::GET, name: "test_endpoint", - path: "/depr/path", + path: Some("/depr/path"), unstable_path: Some("/unstable/path"), r0_path: Some("/r0/path"), stable_path: Some("/stable/path"),