Files
tuliprox/src/model/config_messaging.rs
T
2025-05-04 10:59:08 +02:00

36 lines
1.1 KiB
Rust

use crate::messaging::MsgKind;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(deny_unknown_fields)]
pub struct TelegramMessagingConfig {
pub bot_token: String,
pub chat_ids: Vec<String>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(deny_unknown_fields)]
pub struct RestMessagingConfig {
pub url: String,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(deny_unknown_fields)]
pub struct PushoverMessagingConfig {
pub(crate) url: Option<String>,
pub(crate) token: String,
pub(crate) user: String,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, Default)]
#[serde(deny_unknown_fields)]
pub struct MessagingConfig {
#[serde(default)]
pub notify_on: Vec<MsgKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub telegram: Option<TelegramMessagingConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rest: Option<RestMessagingConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pushover: Option<PushoverMessagingConfig>,
}