v0.6.1
This commit is contained in:
@@ -42,8 +42,8 @@ pub async fn dispatch(state: AppState, level: String, kind: String, message: Str
|
||||
let title = format!("GREE Controller - {}", if level == "error" { "error" } else if level == "warn" { "warning" } else { "event" });
|
||||
let result = match cfg.provider.as_str() {
|
||||
"pushover" => send_pushover(&state, &cfg, &title, &message).await,
|
||||
"slack" => send_webhook(&state, &cfg.slack_webhook_url, json!({"text": format!("*{}*\\n{}", title, message)})).await,
|
||||
"discord" => send_webhook(&state, &cfg.discord_webhook_url, json!({"content": format!("**{}**\\n{}", title, message)})).await,
|
||||
"slack" => send_webhook(&cfg.slack_webhook_url, json!({"text": format!("*{}*\\n{}", title, message)})).await,
|
||||
"discord" => send_webhook(&cfg.discord_webhook_url, json!({"content": format!("**{}**\\n{}", title, message)})).await,
|
||||
_ => Err("unsupported notification provider".into()),
|
||||
};
|
||||
if let Err(err) = result {
|
||||
@@ -59,7 +59,7 @@ async fn send_pushover(state: &AppState, cfg: &NotificationSettings, title: &str
|
||||
if response.status().is_success() { Ok(()) } else { Err(format!("Pushover HTTP {}", response.status())) }
|
||||
}
|
||||
|
||||
async fn send_webhook(state: &AppState, url: &str, body: Value) -> Result<(), String> {
|
||||
async fn send_webhook(url: &str, body: Value) -> Result<(), String> {
|
||||
let parsed = url::Url::parse(url).map_err(|_| "invalid webhook URL".to_string())?;
|
||||
if parsed.scheme() != "https" { return Err("webhook URL must use HTTPS".into()); }
|
||||
let host = parsed.host_str().unwrap_or_default().to_ascii_lowercase();
|
||||
@@ -76,8 +76,8 @@ async fn send_webhook(state: &AppState, url: &str, body: Value) -> Result<(), St
|
||||
pub async fn test(state: &AppState, cfg: NotificationSettings) -> Result<(), String> {
|
||||
match cfg.provider.as_str() {
|
||||
"pushover" => send_pushover(state, &cfg, "GREE Controller", "Test notification").await,
|
||||
"slack" => send_webhook(state, &cfg.slack_webhook_url, json!({"text":"GREE Controller - test notification"})).await,
|
||||
"discord" => send_webhook(state, &cfg.discord_webhook_url, json!({"content":"GREE Controller - test notification"})).await,
|
||||
"slack" => send_webhook(&cfg.slack_webhook_url, json!({"text":"GREE Controller - test notification"})).await,
|
||||
"discord" => send_webhook(&cfg.discord_webhook_url, json!({"content":"GREE Controller - test notification"})).await,
|
||||
_ => Err("unsupported notification provider".into()),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user