diff --git a/crates/ruma-client-api/src/capabilities/get_capabilities.rs b/crates/ruma-client-api/src/capabilities/get_capabilities.rs deleted file mode 100644 index 73957c11..00000000 --- a/crates/ruma-client-api/src/capabilities/get_capabilities.rs +++ /dev/null @@ -1,54 +0,0 @@ -//! `GET /_matrix/client/*/capabilities` - -pub mod v3 { - //! `/v3/` ([spec]) - //! - //! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3capabilities - - use ruma_common::api::ruma_api; - - use crate::capabilities::Capabilities; - - ruma_api! { - metadata: { - description: "Gets information about the server's supported feature set and other relevant capabilities.", - method: GET, - name: "get_capabilities", - r0_path: "/_matrix/client/r0/capabilities", - stable_path: "/_matrix/client/v3/capabilities", - rate_limited: true, - authentication: AccessToken, - added: 1.0, - } - - #[derive(Default)] - request: {} - - response: { - /// The capabilities the server supports - pub capabilities: Capabilities, - } - - error: crate::Error - } - - impl Request { - /// Creates an empty `Request`. - pub fn new() -> Self { - Self {} - } - } - - impl Response { - /// Creates a new `Response` with the given capabilities. - pub fn new(capabilities: Capabilities) -> Self { - Self { capabilities } - } - } - - impl From for Response { - fn from(capabilities: Capabilities) -> Self { - Self::new(capabilities) - } - } -} diff --git a/crates/ruma-client-api/src/discovery.rs b/crates/ruma-client-api/src/discovery.rs index 1622a72d..4c2cbafb 100644 --- a/crates/ruma-client-api/src/discovery.rs +++ b/crates/ruma-client-api/src/discovery.rs @@ -1,4 +1,5 @@ -//! Endpoints that cannot change with new versions of the Matrix specification. +//! Server discovery endpoints. pub mod discover_homeserver; +pub mod get_capabilities; pub mod get_supported_versions; diff --git a/crates/ruma-client-api/src/capabilities.rs b/crates/ruma-client-api/src/discovery/get_capabilities.rs similarity index 98% rename from crates/ruma-client-api/src/capabilities.rs rename to crates/ruma-client-api/src/discovery/get_capabilities.rs index b7a2f2f0..64ad8bbd 100644 --- a/crates/ruma-client-api/src/capabilities.rs +++ b/crates/ruma-client-api/src/discovery/get_capabilities.rs @@ -1,4 +1,8 @@ -//! Endpoints for querying the server's supported feature set +//! `GET /_matrix/client/*/capabilities` +//! +//! Query the capabilities of a server ([spec]) +//! +//! [spec]: https://spec.matrix.org/unstable/client-server-api/#capabilities-negotiation use std::{borrow::Cow, collections::BTreeMap}; @@ -10,8 +14,8 @@ use serde_json::{from_value as from_json_value, to_value as to_json_value, Value use self::iter::{CapabilitiesIter, CapabilityRef}; use crate::PrivOwnedStr; -pub mod get_capabilities; pub mod iter; +pub mod v3; /// Contains information about all the capabilities that the server supports. #[derive(Clone, Debug, Default, Serialize, Deserialize)] diff --git a/crates/ruma-client-api/src/capabilities/iter.rs b/crates/ruma-client-api/src/discovery/get_capabilities/iter.rs similarity index 100% rename from crates/ruma-client-api/src/capabilities/iter.rs rename to crates/ruma-client-api/src/discovery/get_capabilities/iter.rs diff --git a/crates/ruma-client-api/src/discovery/get_capabilities/v3.rs b/crates/ruma-client-api/src/discovery/get_capabilities/v3.rs new file mode 100644 index 00000000..9793f13b --- /dev/null +++ b/crates/ruma-client-api/src/discovery/get_capabilities/v3.rs @@ -0,0 +1,50 @@ +//! `/v3/` ([spec]) +//! +//! [spec]: https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv3capabilities + +use ruma_common::api::ruma_api; + +use super::Capabilities; + +ruma_api! { + metadata: { + description: "Gets information about the server's supported feature set and other relevant capabilities.", + method: GET, + name: "get_capabilities", + r0_path: "/_matrix/client/r0/capabilities", + stable_path: "/_matrix/client/v3/capabilities", + rate_limited: true, + authentication: AccessToken, + added: 1.0, + } + + #[derive(Default)] + request: {} + + response: { + /// The capabilities the server supports + pub capabilities: Capabilities, + } + + error: crate::Error +} + +impl Request { + /// Creates an empty `Request`. + pub fn new() -> Self { + Self {} + } +} + +impl Response { + /// Creates a new `Response` with the given capabilities. + pub fn new(capabilities: Capabilities) -> Self { + Self { capabilities } + } +} + +impl From for Response { + fn from(capabilities: Capabilities) -> Self { + Self::new(capabilities) + } +} diff --git a/crates/ruma-client-api/src/lib.rs b/crates/ruma-client-api/src/lib.rs index 45869878..94d8b105 100644 --- a/crates/ruma-client-api/src/lib.rs +++ b/crates/ruma-client-api/src/lib.rs @@ -12,7 +12,6 @@ pub mod account; pub mod alias; pub mod appservice; pub mod backup; -pub mod capabilities; pub mod config; pub mod context; pub mod device;