pub mod v1 {
use std::time::Duration;
use ruma_common::{
OwnedTransactionId,
api::{auth_scheme::AppserviceToken, request, response},
metadata,
};
metadata! {
method: POST,
rate_limited: false,
authentication: AppserviceToken,
history: {
unstable("fi.mau.msc2659") => "/_matrix/client/unstable/fi.mau.msc2659/appservice/{appservice_id}/ping",
1.7 | stable("fi.mau.msc2659.stable") => "/_matrix/client/v1/appservice/{appservice_id}/ping",
}
}
#[request(error = crate::Error)]
pub struct Request {
#[ruma_api(path)]
pub appservice_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub transaction_id: Option<OwnedTransactionId>,
}
#[response(error = crate::Error)]
pub struct Response {
#[serde(with = "ruma_common::serde::duration::ms", rename = "duration_ms")]
pub duration: Duration,
}
impl Request {
pub fn new(appservice_id: String) -> Self {
Self { appservice_id, transaction_id: None }
}
}
impl Response {
pub fn new(duration: Duration) -> Self {
Self { duration }
}
}
}