From 0a31182e592e643ed69ebbe9430a08c2dec7730a Mon Sep 17 00:00:00 2001 From: iinuwa Date: Tue, 24 Dec 2019 13:45:16 -0800 Subject: [PATCH] Add room event endpoint --- CHANGELOG.md | 1 + src/r0/room.rs | 1 + src/r0/room/get_room_event.rs | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/r0/room/get_room_event.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index 190392f5..09ef111b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,3 +20,4 @@ Improvements: * Update `r0::account::change_password` from r0.3.0 to r0.6.0 * Add optional `auth` field * Add `r0::device` endpoints +* Add `r0::room::get_room_event` (introduced in r0.4.0) diff --git a/src/r0/room.rs b/src/r0/room.rs index 329ec69e..890064da 100644 --- a/src/r0/room.rs +++ b/src/r0/room.rs @@ -1,6 +1,7 @@ //! Endpoints for room creation. pub mod create_room; +pub mod get_room_event; use serde::{Deserialize, Serialize}; diff --git a/src/r0/room/get_room_event.rs b/src/r0/room/get_room_event.rs new file mode 100644 index 00000000..8fadde7b --- /dev/null +++ b/src/r0/room/get_room_event.rs @@ -0,0 +1,32 @@ +//! [GET /_matrix/client/r0/rooms/{roomId}/event/{eventId}](https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-rooms-roomid-event-eventid) + +use ruma_api::ruma_api; +use ruma_events::{collections::all, EventResult}; +use ruma_identifiers::{EventId, RoomId}; +use serde::Deserialize; + +ruma_api! { + metadata { + description: "Get a single event based on roomId/eventId", + method: GET, + name: "get_room_event", + path: "/_matrix/client/r0/rooms/:room_id/event/:event_id", + rate_limited: false, + requires_authentication: true, + } + + request { + /// The ID of the room the event is in. + #[ruma_api(path)] + pub room_id: RoomId, + /// The ID of the event. + #[ruma_api(path)] + pub event_id: EventId, + } + + response { + /// Arbitrary JSON of the event body. Returns both room and state events. + #[wrap_incoming(with EventResult)] + pub event: all::RoomEvent, + } +}