appservice-api: Add support for the appservice ping mechanism
According to MSC2659
This commit is contained in:
parent
915da3c983
commit
7239be4fcb
@ -1,5 +1,9 @@
|
||||
# [unreleased]
|
||||
|
||||
Improvements:
|
||||
|
||||
- Add support for the appservice ping mechanism (MSC 2659 / Matrix 1.7)
|
||||
|
||||
# 0.8.1
|
||||
|
||||
Improvements:
|
||||
|
@ -10,6 +10,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
pub mod event;
|
||||
pub mod ping;
|
||||
pub mod query;
|
||||
pub mod thirdparty;
|
||||
|
||||
|
3
crates/ruma-appservice-api/src/ping.rs
Normal file
3
crates/ruma-appservice-api/src/ping.rs
Normal file
@ -0,0 +1,3 @@
|
||||
//! Endpoint for pinging the application service.
|
||||
|
||||
pub mod send_ping;
|
53
crates/ruma-appservice-api/src/ping/send_ping.rs
Normal file
53
crates/ruma-appservice-api/src/ping/send_ping.rs
Normal file
@ -0,0 +1,53 @@
|
||||
//! `PUT /_matrix/app/*/ping`
|
||||
//!
|
||||
//! Endpoint to ping the application service.
|
||||
|
||||
pub mod v1 {
|
||||
//! `/v1/` ([spec])
|
||||
//!
|
||||
//! [spec]: https://spec.matrix.org/latest/application-service-api/#post_matrixappv1ping
|
||||
|
||||
use ruma_common::{
|
||||
api::{request, response, Metadata},
|
||||
metadata, OwnedTransactionId,
|
||||
};
|
||||
|
||||
const METADATA: Metadata = metadata! {
|
||||
method: POST,
|
||||
rate_limited: false,
|
||||
authentication: AccessToken,
|
||||
history: {
|
||||
unstable => "/_matrix/app/unstable/fi.mau.msc2659/ping",
|
||||
1.7 => "/_matrix/app/v1/ping",
|
||||
}
|
||||
};
|
||||
|
||||
/// Request type for the `send_ping` endpoint.
|
||||
#[request]
|
||||
#[derive(Default)]
|
||||
pub struct Request {
|
||||
/// A transaction ID for the ping, copied directly from the `POST
|
||||
/// /_matrix/client/v1/appservice/{appserviceId}/ping` call.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub transaction_id: Option<OwnedTransactionId>,
|
||||
}
|
||||
|
||||
/// Response type for the `send_ping` endpoint.
|
||||
#[response]
|
||||
#[derive(Default)]
|
||||
pub struct Response {}
|
||||
|
||||
impl Request {
|
||||
/// Creates a new empty `Request`.
|
||||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
}
|
||||
|
||||
impl Response {
|
||||
/// Creates a new empty `Response`.
|
||||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user