gitops_operator/notifications/
notifications.rs

1use reqwest;
2
3use serde_json;
4use tracing::warn;
5
6#[tracing::instrument(name = "send", skip(endpoint), fields())]
7pub async fn send(
8    message: &str,
9    endpoint: Option<&str>,
10) -> Result<reqwest::Response, Box<dyn std::error::Error>> {
11    let Some(endpoint) = endpoint else {
12        warn!("No endpoint provided for sending notifications");
13        return Err("No notification endpoint configured".into());
14    };
15
16    let client = reqwest::Client::new();
17    let payload = serde_json::json!({
18        "text": message
19    });
20
21    Ok(client
22        .post(endpoint)
23        .header("Content-Type", "application/json")
24        .json(&payload)
25        .send()
26        .await?)
27}