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