56 lines
1.5 KiB
Rust
56 lines
1.5 KiB
Rust
//! [GET /_matrix/client/r0/room_keys/version](https://matrix.org/docs/spec/client_server/unstable#post-matrix-client-r0-room-keys-version)
|
|
|
|
use js_int::UInt;
|
|
use ruma_api::ruma_api;
|
|
|
|
use super::BackupAlgorithm;
|
|
|
|
ruma_api! {
|
|
metadata: {
|
|
description: "Get information about an existing backup.",
|
|
method: GET,
|
|
name: "get_backup",
|
|
path: "/_matrix/client/r0/room_keys/version/:version",
|
|
rate_limited: true,
|
|
requires_authentication: true,
|
|
}
|
|
|
|
request: {
|
|
/// The backup version.
|
|
#[ruma_api(path)]
|
|
pub version: &'a str,
|
|
}
|
|
|
|
response: {
|
|
/// The algorithm used for storing backups.
|
|
#[serde(flatten)]
|
|
pub algorithm: BackupAlgorithm,
|
|
|
|
/// The number of keys stored in the backup.
|
|
pub count: UInt,
|
|
|
|
/// An opaque string representing stored keys in the backup. Clients can compare it with
|
|
/// the etag value they received in the request of their last key storage request.
|
|
pub etag: String,
|
|
|
|
/// The backup version. This is an opaque string.
|
|
pub version: String,
|
|
}
|
|
|
|
error: crate::Error
|
|
}
|
|
|
|
impl<'a> Request<'a> {
|
|
/// Creates a new `Request` with the given version.
|
|
pub fn new(version: &'a str) -> Self {
|
|
Self { version }
|
|
}
|
|
}
|
|
|
|
impl Response {
|
|
/// Creates a new `Response` with the gien algorithm, key count, etag and version.
|
|
pub fn new(algorithm: BackupAlgorithm, count: UInt, etag: String, version: String) -> Self {
|
|
Self { algorithm, count, etag, version }
|
|
}
|
|
}
|