Update remaining r0.4.0 modules to r0.6.0
This commit is contained in:
parent
e759c3821e
commit
1ca24515ad
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/account/whoami](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-account-whoami)
|
//! [GET /_matrix/client/r0/account/whoami](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-account-whoami)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [DELETE /_matrix/client/r0/directory/room/{roomAlias}](https://matrix.org/docs/spec/client_server/r0.4.0.html#delete-matrix-client-r0-directory-room-roomalias)
|
//! [DELETE /_matrix/client/r0/directory/room/{roomAlias}](https://matrix.org/docs/spec/client_server/r0.6.0#delete-matrix-client-r0-directory-room-roomalias)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::RoomAliasId;
|
use ruma_identifiers::RoomAliasId;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/directory/room/{roomAlias}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-directory-room-roomalias)
|
//! [GET /_matrix/client/r0/directory/room/{roomAlias}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-directory-room-roomalias)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomAliasId, RoomId};
|
use ruma_identifiers::{RoomAliasId, RoomId};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/user/{userId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-user-userid-account-data-type)
|
//! [PUT /_matrix/client/r0/user/{userId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-user-userid-account-data-type)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -18,11 +18,13 @@ ruma_api! {
|
|||||||
/// Arbitrary JSON to store as config data.
|
/// Arbitrary JSON to store as config data.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: JsonValue,
|
pub data: JsonValue,
|
||||||
|
|
||||||
/// The event type of the account_data to set.
|
/// The event type of the account_data to set.
|
||||||
///
|
///
|
||||||
/// Custom types should be namespaced to avoid clashes.
|
/// Custom types should be namespaced to avoid clashes.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub event_type: String,
|
pub event_type: String,
|
||||||
|
|
||||||
/// The ID of the user to set account_data for.
|
/// The ID of the user to set account_data for.
|
||||||
///
|
///
|
||||||
/// The access token must be authorized to make requests for this user ID.
|
/// The access token must be authorized to make requests for this user ID.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
|
//! [PUT /_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-user-userid-rooms-roomid-account-data-type)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
@ -18,14 +18,17 @@ ruma_api! {
|
|||||||
/// Arbitrary JSON to store as config data.
|
/// Arbitrary JSON to store as config data.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: JsonValue,
|
pub data: JsonValue,
|
||||||
|
|
||||||
/// The event type of the account_data to set.
|
/// The event type of the account_data to set.
|
||||||
///
|
///
|
||||||
/// Custom types should be namespaced to avoid clashes.
|
/// Custom types should be namespaced to avoid clashes.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub event_type: String,
|
pub event_type: String,
|
||||||
|
|
||||||
/// The ID of the room to set account_data on.
|
/// The ID of the room to set account_data on.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The ID of the user to set account_data for.
|
/// The ID of the user to set account_data for.
|
||||||
///
|
///
|
||||||
/// The access token must be authorized to make requests for this user ID.
|
/// The access token must be authorized to make requests for this user ID.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/account/3pid/email/requestToken](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-account-3pid-email-requesttoken)
|
//! [POST /_matrix/client/r0/account/3pid/email/requestToken](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-account-3pid-email-requesttoken)
|
||||||
|
|
||||||
use js_int::UInt;
|
use js_int::UInt;
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
@ -16,13 +16,29 @@ ruma_api! {
|
|||||||
request {
|
request {
|
||||||
/// Client-generated secret string used to protect this session.
|
/// Client-generated secret string used to protect this session.
|
||||||
pub client_secret: String,
|
pub client_secret: String,
|
||||||
|
|
||||||
/// The email address.
|
/// The email address.
|
||||||
pub email: String,
|
pub email: String,
|
||||||
/// The ID server to send the onward request to as a hostname with an appended colon and port number if the port is not the default.
|
|
||||||
|
/// A URL for the identity server to redirect the user to after
|
||||||
|
/// validation is completed.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub next_link: Option<String>,
|
||||||
|
|
||||||
|
/// Used to distinguish protocol level retries from requests to re-send
|
||||||
|
/// the email.
|
||||||
|
pub send_attempt: UInt,
|
||||||
|
|
||||||
|
/// The identity server to send the onward request to as a hostname with
|
||||||
|
/// an appended colon and port number if the port is not the default.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub id_server: Option<String>,
|
pub id_server: Option<String>,
|
||||||
/// Used to distinguish protocol level retries from requests to re-send the email.
|
|
||||||
pub send_attempt: UInt,
|
/// An access token previously registered with the identity server.
|
||||||
|
///
|
||||||
|
/// Required if an `id_server` is supplied.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub id_access_token: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/rooms/{roomId}/context/{eventId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-rooms-roomid-context-eventid)
|
//! [GET /_matrix/client/r0/rooms/{roomId}/context/{eventId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-context-eventid)
|
||||||
|
|
||||||
use js_int::UInt;
|
use js_int::UInt;
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
@ -18,43 +18,63 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The event to get context around.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub event_id: EventId,
|
|
||||||
/// The maximum number of events to return.
|
|
||||||
///
|
|
||||||
/// Defaults to 10 if not supplied.
|
|
||||||
#[ruma_api(query)]
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub limit: Option<UInt>,
|
|
||||||
/// The room to get events from.
|
/// The room to get events from.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
/// A RoomEventFilter to filter returned events with.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
/// The event to get context around.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub event_id: EventId,
|
||||||
|
|
||||||
|
/// The maximum number of events to return.
|
||||||
|
///
|
||||||
|
/// Defaults to 10.
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
|
#[serde(default = "default_limit", skip_serializing_if = "is_default_limit")]
|
||||||
|
pub limit: UInt,
|
||||||
|
|
||||||
|
/// A RoomEventFilter to filter returned events with.
|
||||||
|
#[ruma_api(query)]
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub filter: Option<RoomEventFilter>,
|
pub filter: Option<RoomEventFilter>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
/// A token that can be used to paginate forwards with.
|
|
||||||
pub end: String,
|
|
||||||
/// Details of the requested event.
|
|
||||||
pub event: EventJson<only::RoomEvent>,
|
|
||||||
/// A list of room events that happened just after the requested event, in chronological
|
|
||||||
/// order.
|
|
||||||
|
|
||||||
pub events_after: Vec<EventJson<only::RoomEvent>>,
|
|
||||||
/// A list of room events that happened just before the requested event, in
|
|
||||||
/// reverse-chronological order.
|
|
||||||
|
|
||||||
pub events_before: Vec<EventJson<only::RoomEvent>>,
|
|
||||||
/// A token that can be used to paginate backwards with.
|
/// A token that can be used to paginate backwards with.
|
||||||
pub start: String,
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
/// The state of the room at the last event returned.
|
pub start: Option<String>,
|
||||||
|
|
||||||
|
/// A token that can be used to paginate forwards with.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub end: Option<String>,
|
||||||
|
|
||||||
|
/// A list of room events that happened just before the requested event,
|
||||||
|
/// in reverse-chronological order.
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
|
pub events_before: Vec<EventJson<only::RoomEvent>>,
|
||||||
|
|
||||||
|
/// Details of the requested event.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub event: Option<EventJson<only::RoomEvent>>,
|
||||||
|
|
||||||
|
/// A list of room events that happened just after the requested event,
|
||||||
|
/// in chronological order.
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
|
pub events_after: Vec<EventJson<only::RoomEvent>>,
|
||||||
|
|
||||||
|
/// The state of the room at the last event returned.
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub state: Vec<EventJson<only::StateEvent>>,
|
pub state: Vec<EventJson<only::StateEvent>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_limit() -> UInt {
|
||||||
|
UInt::from(10u32)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::trivially_copy_pass_by_ref)]
|
||||||
|
fn is_default_limit(val: &UInt) -> bool {
|
||||||
|
*val == default_limit()
|
||||||
|
}
|
||||||
|
@ -184,21 +184,25 @@ pub struct FilterDefinition {
|
|||||||
/// include more fields than were requested.
|
/// include more fields than were requested.
|
||||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||||
pub event_fields: Option<Vec<String>>,
|
pub event_fields: Option<Vec<String>>,
|
||||||
|
|
||||||
/// The format to use for events.
|
/// The format to use for events.
|
||||||
///
|
///
|
||||||
/// 'client' will return the events in a format suitable for clients. 'federation' will return
|
/// 'client' will return the events in a format suitable for clients. 'federation' will return
|
||||||
/// the raw event as received over federation. The default is 'client'.
|
/// the raw event as received over federation. The default is 'client'.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub event_format: Option<EventFormat>,
|
pub event_format: Option<EventFormat>,
|
||||||
/// The user account data that isn't associated with rooms to include.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub account_data: Option<Filter>,
|
|
||||||
/// Filters to be applied to room data.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub room: Option<RoomFilter>,
|
|
||||||
/// The presence updates to include.
|
/// The presence updates to include.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub presence: Option<Filter>,
|
pub presence: Option<Filter>,
|
||||||
|
|
||||||
|
/// The user account data that isn't associated with rooms to include.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub account_data: Option<Filter>,
|
||||||
|
|
||||||
|
/// Filters to be applied to room data.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub room: Option<RoomFilter>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FilterDefinition {
|
impl FilterDefinition {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/user/{userId}/filter](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-user-userid-filter)
|
//! [POST /_matrix/client/r0/user/{userId}/filter](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-user-userid-filter)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -16,14 +16,15 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The filter definition.
|
|
||||||
#[ruma_api(body)]
|
|
||||||
pub filter: FilterDefinition,
|
|
||||||
/// The ID of the user uploading the filter.
|
/// The ID of the user uploading the filter.
|
||||||
///
|
///
|
||||||
/// The access token must be authorized to make requests for this user ID.
|
/// The access token must be authorized to make requests for this user ID.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The filter definition.
|
||||||
|
#[ruma_api(body)]
|
||||||
|
pub filter: FilterDefinition,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/user/{userId}/filter/{filterId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-user-userid-filter-filterid)
|
//! [GET /_matrix/client/r0/user/{userId}/filter/{filterId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-filter-filterid)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -16,12 +16,13 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The ID of the filter to download.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub filter_id: String,
|
|
||||||
/// The user ID to download a filter for.
|
/// The user ID to download a filter for.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The ID of the filter to download.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub filter_id: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/media/r0/upload](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-media-r0-upload)
|
//! [POST /_matrix/media/r0/upload](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-media-r0-upload)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
|
|
||||||
@ -14,12 +14,15 @@ ruma_api! {
|
|||||||
|
|
||||||
request {
|
request {
|
||||||
/// The name of the file being uploaded.
|
/// The name of the file being uploaded.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub filename: Option<String>,
|
pub filename: Option<String>,
|
||||||
|
|
||||||
/// The content type of the file being uploaded.
|
/// The content type of the file being uploaded.
|
||||||
|
// TODO: This should be optional.
|
||||||
#[ruma_api(header = CONTENT_TYPE)]
|
#[ruma_api(header = CONTENT_TYPE)]
|
||||||
pub content_type: String,
|
pub content_type: String,
|
||||||
|
|
||||||
/// The file contents to upload.
|
/// The file contents to upload.
|
||||||
#[ruma_api(raw_body)]
|
#[ruma_api(raw_body)]
|
||||||
pub file: Vec<u8>,
|
pub file: Vec<u8>,
|
||||||
|
@ -22,14 +22,17 @@ use crate::r0::thirdparty::Medium;
|
|||||||
/// identity which has been invited to the room.
|
/// identity which has been invited to the room.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct ThirdPartySigned {
|
pub struct ThirdPartySigned {
|
||||||
/// The Matrix ID of the invitee.
|
|
||||||
pub mxid: String,
|
|
||||||
/// The Matrix ID of the user who issued the invite.
|
/// The Matrix ID of the user who issued the invite.
|
||||||
pub sender: String,
|
pub sender: String,
|
||||||
/// A signatures object containing a signature of the entire signed object.
|
|
||||||
pub signatures: BTreeMap<String, BTreeMap<String, String>>,
|
/// The Matrix ID of the invitee.
|
||||||
|
pub mxid: String,
|
||||||
|
|
||||||
/// The state key of the m.third_party_invite event.
|
/// The state key of the m.third_party_invite event.
|
||||||
pub token: String,
|
pub token: String,
|
||||||
|
|
||||||
|
/// A signatures object containing a signature of the entire signed object.
|
||||||
|
pub signatures: BTreeMap<String, BTreeMap<String, String>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents third party IDs to invite to the room.
|
/// Represents third party IDs to invite to the room.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/ban](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-ban)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/ban](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-ban)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
@ -14,14 +14,16 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The reason for banning the user.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub reason: Option<String>,
|
|
||||||
/// The room to kick the user from.
|
/// The room to kick the user from.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The user to ban.
|
/// The user to ban.
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The reason for banning the user.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub reason: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/forget](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-forget)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/forget](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-forget)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/join](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-join)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/join](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-join)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
@ -19,6 +19,7 @@ ruma_api! {
|
|||||||
/// The room where the user should be invited.
|
/// The room where the user should be invited.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The signature of a `m.third_party_invite` token to prove that this user owns a third
|
/// The signature of a `m.third_party_invite` token to prove that this user owns a third
|
||||||
/// party identity which has been invited to the room.
|
/// party identity which has been invited to the room.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/joined_rooms](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-joined-rooms)
|
//! [GET /_matrix/client/r0/joined_rooms](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-joined-rooms)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
@ -16,8 +16,8 @@ ruma_api! {
|
|||||||
request {}
|
request {}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
/// A list of the rooms the user is in, i.e.
|
/// A list of the rooms the user is in, i.e. the ID of each room in
|
||||||
/// the ID of each room in which the user has joined membership.
|
/// which the user has joined membership.
|
||||||
pub joined_rooms: Vec<RoomId>,
|
pub joined_rooms: Vec<RoomId>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/kick](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-kick)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/kick](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-kick)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
@ -14,14 +14,16 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The reason for kicking the user.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub reason: Option<String>,
|
|
||||||
/// The room to kick the user from.
|
/// The room to kick the user from.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The user to kick.
|
/// The user to kick.
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The reason for kicking the user.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub reason: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/leave](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-leave)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/leave](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-leave)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/unban](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-unban)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/unban](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-unban)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
@ -17,6 +17,7 @@ ruma_api! {
|
|||||||
/// The room to unban the user from.
|
/// The room to unban the user from.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The user to unban.
|
/// The user to unban.
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/presence/{userId}/status](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-presence-userid-status)
|
//! [PUT /_matrix/client/r0/presence/{userId}/status](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-presence-userid-status)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::presence::PresenceState;
|
use ruma_events::presence::PresenceState;
|
||||||
@ -15,14 +15,16 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The new presence state.
|
|
||||||
pub presence: PresenceState,
|
|
||||||
/// The status message to attach to this state.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub status_msg: Option<String>,
|
|
||||||
/// The user whose presence state will be updated.
|
/// The user whose presence state will be updated.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The new presence state.
|
||||||
|
pub presence: PresenceState,
|
||||||
|
|
||||||
|
/// The status message to attach to this state.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub status_msg: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-profile-userid-avatar-url)
|
//! [GET /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-profile-userid-avatar-url)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/profile/{userId}/displayname](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-profile-userid-displayname)
|
//! [GET /_matrix/client/r0/profile/{userId}/displayname](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-profile-userid-displayname)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/profile/{userId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-profile-userid)
|
//! [GET /_matrix/client/r0/profile/{userId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-profile-userid)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -23,6 +23,7 @@ ruma_api! {
|
|||||||
/// The user's avatar URL, if set.
|
/// The user's avatar URL, if set.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub avatar_url: Option<String>,
|
pub avatar_url: Option<String>,
|
||||||
|
|
||||||
/// The user's display name, if set.
|
/// The user's display name, if set.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub displayname: Option<String>,
|
pub displayname: Option<String>,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-profile-userid-avatar-url)
|
//! [PUT /_matrix/client/r0/profile/{userId}/avatar_url](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-profile-userid-avatar-url)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -14,11 +14,12 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The new avatar URL for the user.
|
|
||||||
pub avatar_url: String,
|
|
||||||
/// The user whose avatar URL will be set.
|
/// The user whose avatar URL will be set.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The new avatar URL for the user.
|
||||||
|
pub avatar_url: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/profile/{userId}/displayname](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-profile-userid-displayname)
|
//! [PUT /_matrix/client/r0/profile/{userId}/displayname](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-profile-userid-displayname)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
@ -14,12 +14,13 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The new display name for the user.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub displayname: Option<String>,
|
|
||||||
/// The user whose display name will be set.
|
/// The user whose display name will be set.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The new display name for the user.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub displayname: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/rooms/{roomId}/receipt/{receiptType}/{eventId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-rooms-roomid-receipt-receipttype-eventid)
|
//! [POST /_matrix/client/r0/rooms/{roomId}/receipt/{receiptType}/{eventId}](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-rooms-roomid-receipt-receipttype-eventid)
|
||||||
|
|
||||||
use std::convert::TryFrom;
|
use std::convert::TryFrom;
|
||||||
|
|
||||||
@ -17,15 +17,17 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The event ID to acknowledge up to.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub event_id: EventId,
|
|
||||||
/// The type of receipt to send.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub receipt_type: ReceiptType,
|
|
||||||
/// The room in which to send the event.
|
/// The room in which to send the event.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
|
/// The type of receipt to send.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub receipt_type: ReceiptType,
|
||||||
|
|
||||||
|
/// The event ID to acknowledge up to.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub event_id: EventId,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-rooms-roomid-redact-eventid-txnid)
|
//! [PUT /_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-rooms-roomid-redact-eventid-txnid)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{EventId, RoomId};
|
use ruma_identifiers::{EventId, RoomId};
|
||||||
@ -14,20 +14,23 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The ID of the event to redact.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub event_id: EventId,
|
|
||||||
/// The reason for the redaction.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub reason: Option<String>,
|
|
||||||
/// The ID of the room of the event to redact.
|
/// The ID of the room of the event to redact.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
|
/// The ID of the event to redact.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub event_id: EventId,
|
||||||
|
|
||||||
/// The transaction ID for this event.
|
/// The transaction ID for this event.
|
||||||
///
|
///
|
||||||
/// Clients should generate a unique ID; it will be used by the server to ensure idempotency of requests.
|
/// Clients should generate a unique ID; it will be used by the server to ensure idempotency of requests.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub txn_id: String,
|
pub txn_id: String,
|
||||||
|
|
||||||
|
/// The reason for the redaction.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub reason: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/search](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-search)
|
//! [POST /_matrix/client/r0/search](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-search)
|
||||||
|
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
@ -29,6 +29,7 @@ ruma_api! {
|
|||||||
/// If given, this should be a `next_batch` result from a previous call to this endpoint.
|
/// If given, this should be a `next_batch` result from a previous call to this endpoint.
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
pub next_batch: Option<String>,
|
pub next_batch: Option<String>,
|
||||||
|
|
||||||
/// Describes which categories to search in and their criteria.
|
/// Describes which categories to search in and their criteria.
|
||||||
pub search_categories: Categories,
|
pub search_categories: Categories,
|
||||||
}
|
}
|
||||||
@ -52,57 +53,85 @@ pub struct Categories {
|
|||||||
/// Criteria for searching a category of events.
|
/// Criteria for searching a category of events.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct Criteria {
|
pub struct Criteria {
|
||||||
/// Configures whether any context for the events returned are included in the response.
|
/// The string to search events for.
|
||||||
|
pub search_term: String,
|
||||||
|
|
||||||
|
/// The keys to search for. Defaults to all keys.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub event_context: Option<EventContext>,
|
pub keys: Option<Vec<SearchKeys>>,
|
||||||
|
|
||||||
/// A `Filter` to apply to the search.
|
/// A `Filter` to apply to the search.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub filter: Option<RoomEventFilter>,
|
pub filter: Option<RoomEventFilter>,
|
||||||
/// Requests that the server partitions the result set based on the provided list of keys.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub groupings: Option<Groupings>,
|
|
||||||
/// Requests the server return the current state for each room returned.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub include_state: Option<bool>,
|
|
||||||
/// The keys to search for. Defaults to all keys.
|
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
|
||||||
pub keys: Vec<SearchKeys>,
|
|
||||||
/// The order in which to search for results.
|
/// The order in which to search for results.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub order_by: Option<OrderBy>,
|
pub order_by: Option<OrderBy>,
|
||||||
/// The string to search events for.
|
|
||||||
pub search_term: String,
|
/// Configures whether any context for the events returned are included in the response.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub event_context: Option<EventContext>,
|
||||||
|
|
||||||
|
/// Requests the server return the current state for each room returned.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub include_state: Option<bool>,
|
||||||
|
|
||||||
|
/// Requests that the server partitions the result set based on the provided list of keys.
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub groupings: Option<Groupings>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Configures whether any context for the events returned are included in the response.
|
/// Configures whether any context for the events returned are included in the response.
|
||||||
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
||||||
pub struct EventContext {
|
pub struct EventContext {
|
||||||
/// How many events after the result are returned.
|
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
|
||||||
pub after_limit: Option<UInt>,
|
|
||||||
/// How many events before the result are returned.
|
/// How many events before the result are returned.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(
|
||||||
pub before_limit: Option<UInt>,
|
default = "default_event_context_limit",
|
||||||
|
skip_serializing_if = "is_default_event_context_limit"
|
||||||
|
)]
|
||||||
|
pub before_limit: UInt,
|
||||||
|
|
||||||
|
/// How many events after the result are returned.
|
||||||
|
#[serde(
|
||||||
|
default = "default_event_context_limit",
|
||||||
|
skip_serializing_if = "is_default_event_context_limit"
|
||||||
|
)]
|
||||||
|
pub after_limit: UInt,
|
||||||
|
|
||||||
/// Requests that the server returns the historic profile information for the users that
|
/// Requests that the server returns the historic profile information for the users that
|
||||||
/// sent the events that were returned.
|
/// sent the events that were returned.
|
||||||
|
#[serde(default, skip_serializing_if = "ruma_serde::is_default")]
|
||||||
pub include_profile: bool,
|
pub include_profile: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn default_event_context_limit() -> UInt {
|
||||||
|
UInt::from(5u32)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::trivially_copy_pass_by_ref)]
|
||||||
|
fn is_default_event_context_limit(val: &UInt) -> bool {
|
||||||
|
*val == default_event_context_limit()
|
||||||
|
}
|
||||||
|
|
||||||
/// Context for search results, if requested.
|
/// Context for search results, if requested.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct EventContextResult {
|
pub struct EventContextResult {
|
||||||
/// Pagination token for the end of the chunk.
|
/// Pagination token for the end of the chunk.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub end: Option<String>,
|
pub end: Option<String>,
|
||||||
|
|
||||||
/// Events just after the result.
|
/// Events just after the result.
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub events_after: Vec<EventJson<Event>>,
|
pub events_after: Vec<EventJson<Event>>,
|
||||||
|
|
||||||
/// Events just before the result.
|
/// Events just before the result.
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub events_before: Vec<EventJson<Event>>,
|
pub events_before: Vec<EventJson<Event>>,
|
||||||
|
|
||||||
/// The historic profile information of the users that sent the events returned.
|
/// The historic profile information of the users that sent the events returned.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub profile_info: Option<BTreeMap<UserId, UserProfile>>,
|
pub profile_info: Option<BTreeMap<UserId, UserProfile>>,
|
||||||
|
|
||||||
/// Pagination token for the start of the chunk.
|
/// Pagination token for the start of the chunk.
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub start: Option<String>,
|
pub start: Option<String>,
|
||||||
@ -121,6 +150,7 @@ pub struct Grouping {
|
|||||||
pub enum GroupingKey {
|
pub enum GroupingKey {
|
||||||
/// `room_id`
|
/// `room_id`
|
||||||
RoomId,
|
RoomId,
|
||||||
|
|
||||||
/// `sender`
|
/// `sender`
|
||||||
Sender,
|
Sender,
|
||||||
}
|
}
|
||||||
@ -139,9 +169,11 @@ pub enum SearchKeys {
|
|||||||
/// content.body
|
/// content.body
|
||||||
#[serde(rename = "content.body")]
|
#[serde(rename = "content.body")]
|
||||||
ContentBody,
|
ContentBody,
|
||||||
|
|
||||||
/// content.name
|
/// content.name
|
||||||
#[serde(rename = "content.name")]
|
#[serde(rename = "content.name")]
|
||||||
ContentName,
|
ContentName,
|
||||||
|
|
||||||
/// content.topic
|
/// content.topic
|
||||||
#[serde(rename = "content.topic")]
|
#[serde(rename = "content.topic")]
|
||||||
ContentTopic,
|
ContentTopic,
|
||||||
@ -151,11 +183,12 @@ pub enum SearchKeys {
|
|||||||
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum OrderBy {
|
pub enum OrderBy {
|
||||||
|
/// Prioritize recent events.
|
||||||
|
Recent,
|
||||||
|
|
||||||
/// Prioritize events by a numerical ranking of how closely they matched the search
|
/// Prioritize events by a numerical ranking of how closely they matched the search
|
||||||
/// criteria.
|
/// criteria.
|
||||||
Rank,
|
Rank,
|
||||||
/// Prioritize recent events.
|
|
||||||
Recent,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Categories of events that can be searched for.
|
/// Categories of events that can be searched for.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/admin/whois/{userId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-admin-whois-userid)
|
//! [GET /_matrix/client/r0/admin/whois/{userId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-admin-whois-userid)
|
||||||
|
|
||||||
use std::{collections::BTreeMap, time::SystemTime};
|
use std::{collections::BTreeMap, time::SystemTime};
|
||||||
|
|
||||||
@ -24,30 +24,22 @@ ruma_api! {
|
|||||||
|
|
||||||
response {
|
response {
|
||||||
/// The Matrix user ID of the user.
|
/// The Matrix user ID of the user.
|
||||||
pub user_id: UserId,
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub user_id: Option<UserId>,
|
||||||
|
|
||||||
/// A map of the user's device identifiers to information about that device.
|
/// A map of the user's device identifiers to information about that device.
|
||||||
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
||||||
pub devices: BTreeMap<String, DeviceInfo>,
|
pub devices: BTreeMap<String, DeviceInfo>,
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Information about a connection in a user session.
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
|
||||||
pub struct ConnectionInfo {
|
|
||||||
/// Most recently seen IP address of the session.
|
|
||||||
pub ip: String,
|
|
||||||
/// Time when that the session was last active.
|
|
||||||
#[serde(with = "ruma_serde::time::ms_since_unix_epoch")]
|
|
||||||
pub last_seen: SystemTime,
|
|
||||||
/// User agent string last seen in the session.
|
|
||||||
pub user_agent: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Information about a user's device.
|
/// Information about a user's device.
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct DeviceInfo {
|
pub struct DeviceInfo {
|
||||||
/// A list of user sessions on this device.
|
/// A list of user sessions on this device.
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub sessions: Vec<SessionInfo>,
|
pub sessions: Vec<SessionInfo>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,5 +47,20 @@ pub struct DeviceInfo {
|
|||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct SessionInfo {
|
pub struct SessionInfo {
|
||||||
/// A list of connections in this session.
|
/// A list of connections in this session.
|
||||||
|
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||||
pub connections: Vec<ConnectionInfo>,
|
pub connections: Vec<ConnectionInfo>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Information about a connection in a user session.
|
||||||
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
|
pub struct ConnectionInfo {
|
||||||
|
/// Most recently seen IP address of the session.
|
||||||
|
pub ip: Option<String>,
|
||||||
|
|
||||||
|
/// Time when that the session was last active.
|
||||||
|
#[serde(with = "ruma_serde::time::opt_ms_since_unix_epoch")]
|
||||||
|
pub last_seen: Option<SystemTime>,
|
||||||
|
|
||||||
|
/// User agent string last seen in the session.
|
||||||
|
pub user_agent: Option<String>,
|
||||||
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/logout](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-logout)
|
//! [POST /_matrix/client/r0/logout](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-logout)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [POST /_matrix/client/r0/logout/all](https://matrix.org/docs/spec/client_server/r0.4.0.html#post-matrix-client-r0-logout-all)
|
//! [POST /_matrix/client/r0/logout/all](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-logout-all)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/rooms/{roomId}/state](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-rooms-roomid-state)
|
//! [GET /_matrix/client/r0/rooms/{roomId}/state](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-state)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::{collections::all::StateEvent, EventJson};
|
use ruma_events::{collections::all::StateEvent, EventJson};
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-rooms-roomid-state-eventtype)
|
//! [GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-state-eventtype)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
@ -19,6 +19,7 @@ ruma_api! {
|
|||||||
/// The room to look up the state for.
|
/// The room to look up the state for.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The type of state to look up.
|
/// The type of state to look up.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub event_type: EventType,
|
pub event_type: EventType,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-rooms-roomid-state-eventtype-state-key)
|
//! [GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-state-eventtype-state-key)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
@ -19,9 +19,11 @@ ruma_api! {
|
|||||||
/// The room to look up the state for.
|
/// The room to look up the state for.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
/// The type of state to look up.
|
/// The type of state to look up.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub event_type: EventType,
|
pub event_type: EventType,
|
||||||
|
|
||||||
/// The key of the state to look up.
|
/// The key of the state to look up.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub state_key: String,
|
pub state_key: String,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags/{tag}](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-user-userid-rooms-roomid-tags-tag)
|
//! [PUT /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags/{tag}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-user-userid-rooms-roomid-tags-tag)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::tag::TagInfo;
|
use ruma_events::tag::TagInfo;
|
||||||
@ -15,18 +15,21 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The room to tag.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub room_id: RoomId,
|
|
||||||
/// The name of the tag to create.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub tag: String,
|
|
||||||
/// Info about the tag.
|
|
||||||
#[ruma_api(body)]
|
|
||||||
pub tag_info: TagInfo,
|
|
||||||
/// The ID of the user creating the tag.
|
/// The ID of the user creating the tag.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The room to tag.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub room_id: RoomId,
|
||||||
|
|
||||||
|
/// The name of the tag to create.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub tag: String,
|
||||||
|
|
||||||
|
/// Info about the tag.
|
||||||
|
#[ruma_api(body)]
|
||||||
|
pub tag_info: TagInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [DELETE /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags/{tag}](https://matrix.org/docs/spec/client_server/r0.4.0.html#delete-matrix-client-r0-user-userid-rooms-roomid-tags-tag)
|
//! [DELETE /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags/{tag}](https://matrix.org/docs/spec/client_server/r0.6.0#delete-matrix-client-r0-user-userid-rooms-roomid-tags-tag)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
@ -14,15 +14,17 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The tagged room.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub room_id: RoomId,
|
|
||||||
/// The name of the tag to delete.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub tag: String,
|
|
||||||
/// The user whose tag will be deleted.
|
/// The user whose tag will be deleted.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The tagged room.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub room_id: RoomId,
|
||||||
|
|
||||||
|
/// The name of the tag to delete.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub tag: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-user-userid-rooms-roomid-tags)
|
//! [GET /_matrix/client/r0/user/{userId}/rooms/{roomId}/tags](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-user-userid-rooms-roomid-tags)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::{tag::TagEventContent, EventJson};
|
use ruma_events::{tag::TagEventContent, EventJson};
|
||||||
@ -15,12 +15,13 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
/// The room from which tags will be retrieved.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub room_id: RoomId,
|
|
||||||
/// The user whose tags will be retrieved.
|
/// The user whose tags will be retrieved.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub user_id: UserId,
|
pub user_id: UserId,
|
||||||
|
|
||||||
|
/// The room from which tags will be retrieved.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub room_id: RoomId,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [PUT /_matrix/client/r0/rooms/{roomId}/typing/{userId}](https://matrix.org/docs/spec/client_server/r0.4.0.html#put-matrix-client-r0-rooms-roomid-typing-userid)
|
//! [PUT /_matrix/client/r0/rooms/{roomId}/typing/{userId}](https://matrix.org/docs/spec/client_server/r0.6.0#put-matrix-client-r0-rooms-roomid-typing-userid)
|
||||||
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
@ -16,9 +16,19 @@ ruma_api! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
request {
|
request {
|
||||||
|
/// The user who has started to type.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub user_id: UserId,
|
||||||
|
|
||||||
/// The room in which the user is typing.
|
/// The room in which the user is typing.
|
||||||
#[ruma_api(path)]
|
#[ruma_api(path)]
|
||||||
pub room_id: RoomId,
|
pub room_id: RoomId,
|
||||||
|
|
||||||
|
// TODO: Group the following two body fields into an enum
|
||||||
|
|
||||||
|
/// Whether the user is typing or not. If `false`, the `timeout` key can be omitted.
|
||||||
|
pub typing: bool,
|
||||||
|
|
||||||
/// The length of time in milliseconds to mark this user as typing.
|
/// The length of time in milliseconds to mark this user as typing.
|
||||||
#[serde(
|
#[serde(
|
||||||
with = "ruma_serde::duration::opt_ms",
|
with = "ruma_serde::duration::opt_ms",
|
||||||
@ -26,11 +36,6 @@ ruma_api! {
|
|||||||
skip_serializing_if = "Option::is_none",
|
skip_serializing_if = "Option::is_none",
|
||||||
)]
|
)]
|
||||||
pub timeout: Option<Duration>,
|
pub timeout: Option<Duration>,
|
||||||
/// Whether the user is typing or not. If `false`, the `timeout` key can be omitted.
|
|
||||||
pub typing: bool,
|
|
||||||
/// The user who has started to type.
|
|
||||||
#[ruma_api(path)]
|
|
||||||
pub user_id: UserId,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
response {}
|
response {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
//! [GET /_matrix/client/r0/voip/turnServer](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-voip-turnserver)
|
//! [GET /_matrix/client/r0/voip/turnServer](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-voip-turnserver)
|
||||||
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
@ -17,15 +17,18 @@ ruma_api! {
|
|||||||
request {}
|
request {}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
/// The username to use.
|
||||||
|
pub username: String,
|
||||||
|
|
||||||
/// The password to use.
|
/// The password to use.
|
||||||
pub password: String,
|
pub password: String,
|
||||||
|
|
||||||
|
/// A list of TURN URIs.
|
||||||
|
pub uris: Vec<String>,
|
||||||
|
|
||||||
/// The time-to-live in seconds.
|
/// The time-to-live in seconds.
|
||||||
#[serde(with = "ruma_serde::duration::secs")]
|
#[serde(with = "ruma_serde::duration::secs")]
|
||||||
pub ttl: Duration,
|
pub ttl: Duration,
|
||||||
/// A list of TURN URIs.
|
|
||||||
pub uris: Vec<String>,
|
|
||||||
/// The username to use.
|
|
||||||
pub username: String,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
|
@ -1,23 +1,9 @@
|
|||||||
//! [GET /.well-known/matrix/client](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-well-known-matrix-client)
|
//! [GET /.well-known/matrix/client](https://matrix.org/docs/spec/client_server/r0.6.0#get-well-known-matrix-client)
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use url::Url;
|
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! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
description: "Get discovery information about the domain.",
|
description: "Get discovery information about the domain.",
|
||||||
@ -42,3 +28,17 @@ ruma_api! {
|
|||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 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,
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user