use ruma::{
api::{auth_scheme::AccessToken, request, response},
metadata,
serde::StringEnum,
};
metadata! {
method: POST,
rate_limited: false,
authentication: AccessToken,
path: "/_synapse/admin/v1/background_updates/start_job",
}
#[request]
pub struct Request {
pub job_name: JobName,
}
#[response]
#[derive(Default)]
pub struct Response {}
impl Request {
pub fn new(job_name: JobName) -> Self {
Self { job_name }
}
}
impl Response {
pub fn new() -> Self {
Self {}
}
}
#[derive(Clone, StringEnum)]
#[ruma_enum(rename_all = "snake_case")]
#[non_exhaustive]
pub enum JobName {
PopulateStatsProcessRooms,
RegenerateDirectory,
#[doc(hidden)]
_Custom(crate::PrivOwnedStr),
}
#[test]
fn test_run_background_updates() {
let job_name = JobName::PopulateStatsProcessRooms;
let request = Request::new(job_name.clone());
assert_eq!(request.job_name, job_name);
}