✨ feat(config): add delete flag for retention rules
- allow retention rules to be configured to delete messages - add `delete` flag to `add_rule` function - add `set_command` function to `EolRule` to set the action to delete
This commit is contained in:
committed by
Jeremiah Russell
parent
9737ef4b7d
commit
c81cd6d6cc
@@ -11,7 +11,7 @@ mod eol_rule;
|
||||
|
||||
use eol_rule::EolRule;
|
||||
|
||||
use crate::{Error, MessageAge, Retention};
|
||||
use crate::{Error, MessageAge, Retention, eol_cmd::EolAction};
|
||||
|
||||
/// Configuration file for the program
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
@@ -29,10 +29,10 @@ impl Default for Config {
|
||||
rules,
|
||||
};
|
||||
|
||||
cfg.add_rule(Retention::new(MessageAge::Years(1), true), None)
|
||||
.add_rule(Retention::new(MessageAge::Weeks(1), true), None)
|
||||
.add_rule(Retention::new(MessageAge::Months(1), true), None)
|
||||
.add_rule(Retention::new(MessageAge::Years(5), true), None);
|
||||
cfg.add_rule(Retention::new(MessageAge::Years(1), true), None, false)
|
||||
.add_rule(Retention::new(MessageAge::Weeks(1), true), None, false)
|
||||
.add_rule(Retention::new(MessageAge::Months(1), true), None, false)
|
||||
.add_rule(Retention::new(MessageAge::Years(5), true), None, false);
|
||||
|
||||
cfg
|
||||
}
|
||||
@@ -51,7 +51,12 @@ impl Config {
|
||||
}
|
||||
|
||||
/// Add a new rule to the rule set by setting the retention age
|
||||
pub fn add_rule(&mut self, retention: Retention, label: Option<&String>) -> &mut Self {
|
||||
pub fn add_rule(
|
||||
&mut self,
|
||||
retention: Retention,
|
||||
label: Option<&String>,
|
||||
delete: bool,
|
||||
) -> &mut Self {
|
||||
if self.rules.contains_key(&retention.age().to_string()) && label.is_none() {
|
||||
log::warn!("rule already exists");
|
||||
return self;
|
||||
@@ -79,6 +84,9 @@ impl Config {
|
||||
if let Some(l) = label {
|
||||
rule.add_label(l);
|
||||
}
|
||||
if delete {
|
||||
rule.set_command(EolAction::Delete);
|
||||
}
|
||||
log::info!("added rule: {rule}");
|
||||
self.rules.insert(rule.retention().to_string(), rule);
|
||||
self
|
||||
|
||||
Reference in New Issue
Block a user