Add client config retrieval endpoints

This commit is contained in:
iinuwa 2020-02-19 04:00:12 -06:00 committed by GitHub
parent 411c6e18b4
commit 959e10fd15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 70 additions and 0 deletions

View File

@ -5,6 +5,7 @@ Improvements:
* Add an `Error` type that represents the well-known errors in the client-server API
* Add OpenID token request endpoint.
* Add `r0::client_exchange::send_event_to_device` (introduced in r0.3.0)
* Add endpoints to retrieve account_data (introduced in r0.5.0)
Breaking changes:

View File

@ -1,4 +1,6 @@
//! Endpoints for client configuration.
pub mod get_global_account_data;
pub mod get_room_account_data;
pub mod set_global_account_data;
pub mod set_room_account_data;

View File

@ -0,0 +1,32 @@
//! [GET /_matrix/client/r0/user/{userId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-account-data-type)
use ruma_api::ruma_api;
use ruma_events::{collections::only, EventResult};
use ruma_identifiers::UserId;
ruma_api! {
metadata {
description: "Gets global account data for a user.",
name: "get_global_account_data",
method: GET,
path: "/_matrix/client/r0/user/:user_id/account_data/:event_type",
rate_limited: false,
requires_authentication: true,
}
request {
/// User ID of user for whom to retrieve data.
#[ruma_api(path)]
user_id: UserId,
/// Type of data to retrieve.
#[ruma_api(path)]
event_type: String,
}
response {
/// Account data content for the given type.
#[ruma_api(body)]
#[wrap_incoming(with EventResult)]
account_data: only::Event,
}
}

View File

@ -0,0 +1,35 @@
//! [GET /_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
use ruma_api::ruma_api;
use ruma_events::{collections::only, EventResult};
use ruma_identifiers::{RoomId, UserId};
ruma_api! {
metadata {
description: "Gets account data room for a user for a given room",
name: "get_room_account_data",
method: GET,
path: "/_matrix/client/r0/user/:user_id/rooms/:room_id/account_data/:event_type",
rate_limited: false,
requires_authentication: true,
}
request {
/// User ID of user for whom to retrieve data.
#[ruma_api(path)]
user_id: UserId,
/// Room ID for which to retrieve data.
#[ruma_api(path)]
room_id: RoomId,
/// Type of data to retrieve.
#[ruma_api(path)]
event_type: String,
}
response {
/// Account data content for the given type.
#[ruma_api(body)]
#[wrap_incoming(with EventResult)]
account_data: only::Event,
}
}