use ruma::{
api::{auth_scheme::AccessToken, request, response},
metadata,
};
use serde::{Deserialize, Serialize};
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
path: "/_synapse/admin/v1/background_updates/enabled",
}
#[request]
pub struct Request {
pub enabled: bool,
}
#[response]
#[derive(Serialize, Deserialize, PartialEq)]
pub struct Response {
pub enabled: bool,
}
impl Request {
pub fn new(enabled: bool) -> Self {
Self { enabled }
}
}
impl Response {
pub fn new(enabled: bool) -> Self {
Self { enabled }
}
}
#[test]
fn test_enabled_background_updates() {
let enabled = true;
let request = Request::new(enabled);
assert!(request.enabled);
let response = Response::new(enabled);
assert!(request.enabled);
let serialized = serde_json::to_string(&response).expect("Failed to serialize");
assert_eq!(serialized, "{\"enabled\":true}");
let deserialized: Response = serde_json::from_str(&serialized).expect("Failed to deserialize");
assert_eq!(deserialized, response);
assert!(deserialized.enabled);
}