2021-07-09 15:10:22 +02:00

46 lines
1.0 KiB
Rust

//! [GET /_matrix/key/v2/server](https://matrix.org/docs/spec/server_server/r0.1.4#get-matrix-key-v2-server-keyid)
use ruma_api::ruma_api;
use crate::discovery::ServerSigningKeys;
ruma_api! {
metadata: {
description: "Gets the homeserver's published signing keys.",
method: GET,
name: "get_server_keys",
path: "/_matrix/key/v2/server",
rate_limited: false,
authentication: None,
}
#[derive(Default)]
request: {}
response: {
/// Queried server key, signed by the notary server.
#[ruma_api(body)]
pub server_key: ServerSigningKeys,
}
}
impl Request {
/// Creates an empty `Request`.
pub fn new() -> Self {
Self {}
}
}
impl Response {
/// Creates a new `Response` with the given server key.
pub fn new(server_key: ServerSigningKeys) -> Self {
Self { server_key }
}
}
impl From<ServerSigningKeys> for Response {
fn from(server_key: ServerSigningKeys) -> Self {
Self::new(server_key)
}
}