Skip to main content

autopulse_service/settings/triggers/
autoscan.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 Autoscan {
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 Autoscan {
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/// Autoscan trigger query parameters
32///
33/// Example:
34/// - /triggers/autoscan?dir=/path/to/dir
35#[derive(Deserialize)]
36pub struct AutoscanQueryParams {
37    /// Path to the directory
38    pub dir: String,
39}