Skip to main content

autopulse_service/settings/triggers/
manual.rs

1use crate::settings::rewrite::Rewrite;
2use crate::settings::timer::Timer;
3use crate::settings::triggers::TriggerConfig;
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Clone)]
7pub struct Manual {
8    /// Rewrite path
9    pub rewrite: Option<Rewrite>,
10    /// Timer settings
11    pub timer: Option<Timer>,
12    /// Targets to ignore
13    #[serde(default)]
14    pub excludes: Vec<String>,
15}
16
17impl TriggerConfig for Manual {
18    fn rewrite(&self) -> Option<&Rewrite> {
19        self.rewrite.as_ref()
20    }
21
22    fn timer(&self) -> Option<&Timer> {
23        self.timer.as_ref()
24    }
25
26    fn excludes(&self) -> &Vec<String> {
27        &self.excludes
28    }
29}
30
31/// Manual trigger query parameters
32///
33/// Example:
34/// - /triggers/manual?path=/path/to/file
35/// - /triggers/manual?path=/path/to/file&hash=3b3fa...
36#[derive(Deserialize)]
37pub struct ManualQueryParams {
38    /// Path to the file
39    pub path: String,
40    /// Optional sha256sum hash of the file
41    pub hash: Option<String>,
42}