From 863fe814efbc4b7739acc1f8ab5f17d2ee8b75c8 Mon Sep 17 00:00:00 2001 From: Jimmy Cuadra Date: Fri, 7 Jul 2017 01:08:03 -0700 Subject: [PATCH] Use ruma-api-macros for the voip endpoints. --- src/lib.rs | 2 +- src/r0/voip.rs | 60 ++++++++++++++++---------------------------------- 2 files changed, 20 insertions(+), 42 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 95e8bdca..28231ced 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -42,7 +42,7 @@ pub mod r0 { pub mod sync; pub mod tag; pub mod typing; -// pub mod voip; + pub mod voip; } pub mod unversioned; diff --git a/src/r0/voip.rs b/src/r0/voip.rs index acb85720..4baa289e 100644 --- a/src/r0/voip.rs +++ b/src/r0/voip.rs @@ -2,51 +2,29 @@ /// [GET /_matrix/client/r0/voip/turnServer](https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-voip-turnserver) pub mod get_turn_server_info { - /// Details about this API endpoint. - #[derive(Clone, Copy, Debug)] - pub struct Endpoint; + use ruma_api_macros::ruma_api; - /// This API endpoint's path parameters. - #[derive(Clone, Debug, Deserialize, Serialize)] - pub struct Response { - pub username: String, - pub password: String, - pub uris: Vec, - pub ttl: u64 - } - - impl ::Endpoint for Endpoint { - type BodyParams = (); - type PathParams = (); - type QueryParams = (); - type Response = Response; - - fn method() -> ::Method { - ::Method::Get + ruma_api! { + metadata { + description: "Get credentials for the client to use when initiating VoIP calls.", + method: Method::Get, + name: "turn_server_info", + path: "_matrix/client/r0/voip/turnServer", + rate_limited: true, + requires_authentication: true, } - fn request_path(_params: Self::PathParams) -> String { - Self::router_path().to_string() - } + request {} - fn router_path() -> &'static str { - "_matrix/client/r0/voip/turnServer" - } - - fn name() -> &'static str { - "turn_server_info" - } - - fn description() -> &'static str { - "Get credentials for the client to use when initiating VoIP calls." - } - - fn requires_authentication() -> bool { - true - } - - fn rate_limited() -> bool { - true + response { + /// The password to use. + pub password: String, + /// The time-to-live in seconds. + pub ttl: u64, + /// A list of TURN URIs. + pub uris: Vec, + /// The username to use. + pub username: String, } } }