Crate discourse_webhooks

Source
Expand description

§Discourse Webhooks

A type-safe Rust library for handling Discourse webhook events.

This crate provides:

  • Type-safe event parsing for Discourse webhooks
  • HMAC-SHA256 signature verification
  • Trait-based event handling system
  • Support for all major Discourse webhook events

§Quick Start

use discourse_webhooks::{WebhookEventHandler, WebhookProcessor, TopicWebhookEvent};

struct MyHandler;

impl WebhookEventHandler for MyHandler {
    type Error = String;

    fn handle_topic_created(&mut self, event: &TopicWebhookEvent) -> Result<(), Self::Error> {
        println!("New topic: {}", event.topic.title);
        Ok(())
    }
}

// Process webhook events
let processor = WebhookProcessor::new();
let mut handler = MyHandler;
// processor.process_json(&mut handler, "topic_created", payload, None)?;

Re-exports§

pub use error::Result;
pub use error::WebhookError;
pub use events::parse_webhook_payload;
pub use events::PostWebhookEvent;
pub use events::TopicWebhookEvent;
pub use events::WebhookEventPayload;
pub use events::WebhookPost;
pub use events::WebhookTopic;
pub use events::WebhookUser;
pub use signature::verify_json_signature;
pub use signature::verify_signature;
pub use signature::SignatureVerificationError;

Modules§

error
Error types for the discourse-webhooks crate
events
Event types and parsing for Discourse webhooks
signature

Structs§

DiscourseWebhookPayload
Represents a Discourse webhook payload structure
WebhookProcessor
A webhook processor that handles signature verification and event dispatching

Traits§

WebhookEventHandler
Trait for handling different types of webhook events

Functions§

process_webhook_event
Process a webhook event using the provided handler