ruma_federation_api/membership/prepare_knock_event/
v1.rs1use ruma_common::{
6 api::{request, response},
7 metadata, OwnedRoomId, OwnedUserId, RoomVersionId,
8};
9use serde_json::value::RawValue as RawJsonValue;
10
11use crate::authentication::ServerSignatures;
12
13metadata! {
14 method: GET,
15 rate_limited: false,
16 authentication: ServerSignatures,
17 path: "/_matrix/federation/v1/make_knock/{room_id}/{user_id}",
18}
19
20#[request]
22pub struct Request {
23 #[ruma_api(path)]
25 pub room_id: OwnedRoomId,
26
27 #[ruma_api(path)]
29 pub user_id: OwnedUserId,
30
31 #[ruma_api(query)]
35 pub ver: Vec<RoomVersionId>,
36}
37
38#[response]
40pub struct Response {
41 pub room_version: RoomVersionId,
43
44 pub event: Box<RawJsonValue>,
48}
49
50impl Request {
51 pub fn new(room_id: OwnedRoomId, user_id: OwnedUserId) -> Self {
53 Self { room_id, user_id, ver: vec![RoomVersionId::V1] }
54 }
55}
56
57impl Response {
58 pub fn new(room_version: RoomVersionId, event: Box<RawJsonValue>) -> Self {
60 Self { room_version, event }
61 }
62}