use omnihook::{GenericWebhookPayloadBuilder, WebhookConfig};
use url::Url;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let _ = dotenvy::dotenv();
let url = Url::parse(&std::env::var("GENERIC_WEBHOOK_URL")?)?;
let client = WebhookConfig::new(url)
.with_secret("my-shared-secret-key")
.build()?;
let builder = GenericWebhookPayloadBuilder::default();
let title = "Omnihook: Generic Webhook";
let body = "This message was sent from **omnihook** using the `GenericWebhookPayloadBuilder` with HMAC signing enabled.";
let idempotency_key = Some("unique-request-id-123");
client
.notify_with_key(title, body, &builder, idempotency_key)
.await?;
Ok(())
}