Add homeserver discovery endpoint.

This commit is contained in:
Jimmy Cuadra 2019-05-01 21:14:59 -07:00
parent 8f1d4a4d21
commit 3037b105c7
2 changed files with 43 additions and 0 deletions

View File

@ -1,3 +1,4 @@
//! Endpoints that cannot change with new versions of the Matrix specification.
pub mod get_supported_versions;
pub mod discover_homeserver;

View File

@ -0,0 +1,42 @@
//! [GET /.well-known/matrix/client](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-well-known-matrix-client)
use ruma_api_macros::ruma_api;
use serde::{Deserialize, Serialize};
use url::Url;
/// Information about a discovered homeserver.
#[derive(Clone, Debug, Deserialize, Hash, PartialEq, PartialOrd, Serialize)]
pub struct HomeserverInfo {
/// The base URL for the homeserver for client-server connections.
pub base_url: Url,
}
/// Information about a discovered identity server.
#[derive(Clone, Debug, Deserialize, Hash, PartialEq, PartialOrd, Serialize)]
pub struct IdentityServerInfo {
/// The base URL for the identity server for client-server connections.
pub base_url: Url,
}
ruma_api! {
metadata {
description: "Get the versions of the client-server API supported by this homeserver.",
method: GET,
name: "discover_homeserver",
path: "/.well-known/matrix/client",
rate_limited: false,
requires_authentication: false,
}
request {}
response {
/// Information about the homeserver to connect to.
#[serde(rename = "m.homeserver")]
pub homeserver: HomeserverInfo,
/// Information about the identity server to connect to.
#[serde(rename = "m.identity_server")]
pub identity_server: Option<IdentityServerInfo>,
}
}