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]
|
# [unreleased]
|
||||||
|
|
||||||
|
Improvements:
|
||||||
|
|
||||||
|
- Add support for the appservice ping mechanism (MSC 2659 / Matrix 1.7)
|
||||||
|
|
||||||
# 0.8.1
|
# 0.8.1
|
||||||
|
|
||||||
Improvements:
|
Improvements:
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
pub mod event;
|
pub mod event;
|
||||||
|
pub mod ping;
|
||||||
pub mod query;
|
pub mod query;
|
||||||
pub mod thirdparty;
|
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