synapse_admin_api/background_updates/run/
v1.rs1use ruma::{
4 api::{request, response, Metadata},
5 metadata,
6 serde::{PartialEqAsRefStr, StringEnum},
7};
8
9const METADATA: Metadata = metadata! {
10 method: POST,
11 rate_limited: false,
12 authentication: AccessToken,
13 history: {
14 unstable => "/_synapse/admin/v1/background_updates/start_job",
15 }
16};
17
18#[request]
19pub struct Request {
20 pub job_name: JobName,
22}
23
24#[response]
25#[derive(Default)]
26pub struct Response {}
27
28impl Request {
29 pub fn new(job_name: JobName) -> Self {
31 Self { job_name }
32 }
33}
34
35impl Response {
36 pub fn new() -> Self {
38 Self {}
39 }
40}
41
42#[derive(Clone, PartialEqAsRefStr, Eq, StringEnum)]
43#[ruma_enum(rename_all = "snake_case")]
44#[non_exhaustive]
45pub enum JobName {
46 PopulateStatsProcessRooms,
48
49 RegenerateDirectory,
51
52 #[doc(hidden)]
53 _Custom(crate::PrivOwnedStr),
54}
55
56#[test]
57fn test_run_background_updates() {
58 let job_name = JobName::PopulateStatsProcessRooms;
59 let request = Request::new(job_name.clone());
61 assert_eq!(request.job_name, job_name);
62}