Merge pull request #38 from ruma/new-endpoints

Add two new endpoints from r0.3.0
This commit is contained in:
Jimmy Cuadra 2019-04-26 15:15:48 -07:00 committed by GitHub
commit 72a67419a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 0 deletions

View File

@ -5,3 +5,4 @@ pub mod deactivate;
pub mod register;
pub mod request_password_change_token;
pub mod request_register_token;
pub mod whoami;

22
src/r0/account/whoami.rs Normal file
View File

@ -0,0 +1,22 @@
//! [GET /_matrix/client/r0/account/whoami](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-account-whoami)
use ruma_api_macros::ruma_api;
use serde::{Deserialize, Serialize};
ruma_api! {
metadata {
description: "Get information about the owner of a given access token.",
method: GET,
name: "whoami",
path: "/_matrix/client/r0/account/whoami",
rate_limited: true,
requires_authentication: true,
}
request {}
response {
/// The id of the user that owns the access token.
pub user_id: String,
}
}

View File

@ -5,6 +5,7 @@ pub mod forget_room;
pub mod invite_user;
pub mod join_room_by_id;
pub mod join_room_by_id_or_alias;
pub mod joined_members;
pub mod joined_rooms;
pub mod kick_user;
pub mod leave_room;

View File

@ -0,0 +1,40 @@
//! [GET /_matrix/client/r0/rooms/{roomId}/joined_members](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-rooms-roomid-joined-members)
use std::collections::HashMap;
use ruma_api_macros::ruma_api;
use ruma_identifiers::{RoomId, UserId};
use serde::{Deserialize, Serialize};
ruma_api! {
metadata {
description: "Get a map of user ids to member info objects for members of the room. Primarily for use in Application Services.",
method: GET,
name: "joined_members",
path: "/_matrix/client/r0/rooms/:room_id/joined_members",
rate_limited: false,
requires_authentication: true,
}
request {
/// The room to get the members of.
#[ruma_api(path)]
pub room_id: RoomId,
}
response {
/// A list of the rooms the user is in, i.e.
/// the ID of each room in which the user has joined membership.
pub joined: HashMap<UserId, RoomMember>,
}
}
// TODO: Find out whether display_name and avatar_url are optional
/// Information about a room member.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct RoomMember {
/// The display name of the user.
pub display_name: String,
/// The mxc avatar url of the user.
pub avatar_url: Option<String>,
}