federation-api: Add third party invite endpoint
This commit is contained in:
parent
0ab74eac44
commit
c08d350343
@ -25,7 +25,10 @@ Improvements:
|
|||||||
create_leave_event::{v1, v2},
|
create_leave_event::{v1, v2},
|
||||||
get_leave_event::v1,
|
get_leave_event::v1,
|
||||||
},
|
},
|
||||||
thirdparty::bind_callback::v1,
|
thirdparty::{
|
||||||
|
bind_callback::v1,
|
||||||
|
exchange_invite::v1,
|
||||||
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
# 0.0.3
|
# 0.0.3
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
//! Module for dealing with third party identifiers
|
//! Module for dealing with third party identifiers
|
||||||
|
|
||||||
pub mod bind_callback;
|
pub mod bind_callback;
|
||||||
|
pub mod exchange_invite;
|
||||||
|
7
ruma-federation-api/src/thirdparty/exchange_invite.rs
vendored
Normal file
7
ruma-federation-api/src/thirdparty/exchange_invite.rs
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
//! The receiving server will verify the partial `m.room.member` event given in the request body.
|
||||||
|
//! If valid, the receiving server will issue an invite as per the [Inviting to a room] section
|
||||||
|
//! before returning a response to this request.
|
||||||
|
//!
|
||||||
|
//! [Inviting to a room]: https://matrix.org/docs/spec/server_server/r0.1.4#inviting-to-a-room
|
||||||
|
|
||||||
|
pub mod v1;
|
57
ruma-federation-api/src/thirdparty/exchange_invite/v1.rs
vendored
Normal file
57
ruma-federation-api/src/thirdparty/exchange_invite/v1.rs
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
//! [PUT /_matrix/federation/v1/exchange_third_party_invite/{roomId}](https://matrix.org/docs/spec/server_server/r0.1.4#put-matrix-federation-v1-exchange-third-party-invite-roomid)
|
||||||
|
|
||||||
|
use ruma_api::ruma_api;
|
||||||
|
use ruma_events::{room::member::ThirdPartyInvite, EventType};
|
||||||
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
|
|
||||||
|
ruma_api! {
|
||||||
|
metadata: {
|
||||||
|
description: "The receiving server will verify the partial m.room.member event given in the request body.",
|
||||||
|
method: PUT,
|
||||||
|
name: "exchange_invite",
|
||||||
|
path: "/_matrix/federation/v1/exchange_third_party_invite/:room_id",
|
||||||
|
rate_limited: false,
|
||||||
|
authentication: AccessToken,
|
||||||
|
}
|
||||||
|
|
||||||
|
request: {
|
||||||
|
/// The room ID to exchange a third party invite in.
|
||||||
|
#[ruma_api(path)]
|
||||||
|
pub room_id: &'a RoomId,
|
||||||
|
|
||||||
|
/// The event type. Must be `m.room.member`.
|
||||||
|
#[serde(rename = "type")]
|
||||||
|
pub kind: EventType,
|
||||||
|
|
||||||
|
/// The user ID of the user who sent the original invite event.
|
||||||
|
pub sender: &'a UserId,
|
||||||
|
|
||||||
|
/// The user ID of the invited user.
|
||||||
|
pub state_key: &'a UserId,
|
||||||
|
|
||||||
|
/// The content of the invite event.
|
||||||
|
pub content: &'a ThirdPartyInvite,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Default)]
|
||||||
|
response: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Request<'a> {
|
||||||
|
/// Creates a new `Request` for a third party invite exchange
|
||||||
|
pub fn new(
|
||||||
|
room_id: &'a RoomId,
|
||||||
|
sender: &'a UserId,
|
||||||
|
state_key: &'a UserId,
|
||||||
|
content: &'a ThirdPartyInvite,
|
||||||
|
) -> Self {
|
||||||
|
Self { room_id, kind: EventType::RoomMember, sender, state_key, content }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Response {
|
||||||
|
/// Creates a new `Response`.
|
||||||
|
pub fn new() -> Self {
|
||||||
|
Self
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user