pub struct WebhookProcessor { /* private fields */ }Expand description
A webhook processor that handles signature verification and event dispatching
This struct provides a convenient way to process webhook events with optional signature verification.
§Examples
use discourse_webhooks::WebhookProcessor;
// Without signature verification
let processor = WebhookProcessor::new();
// With signature verification
let processor = WebhookProcessor::new()
    .with_secret("your_webhook_secret");Implementations§
Source§impl WebhookProcessor
 
impl WebhookProcessor
Sourcepub fn new() -> Self
 
pub fn new() -> Self
Create a new webhook processor with default settings
By default, signature verification is disabled.
Sourcepub fn with_secret<S: Into<String>>(self, secret: S) -> Self
 
pub fn with_secret<S: Into<String>>(self, secret: S) -> Self
Enable signature verification with the provided secret
§Arguments
- secret- The shared secret key for HMAC verification
Sourcepub fn without_signature_verification(self) -> Self
 
pub fn without_signature_verification(self) -> Self
Disable signature verification
This can be useful for development or when webhooks are received through a trusted channel.
Sourcepub fn verifies_signatures(&self) -> bool
 
pub fn verifies_signatures(&self) -> bool
Check if signature verification is enabled
Sourcepub fn process<H: WebhookEventHandler>(
    &self,
    handler: &mut H,
    event_type: &str,
    payload: &str,
    signature: Option<&str>,
) -> Result<(), H::Error>
 
pub fn process<H: WebhookEventHandler>( &self, handler: &mut H, event_type: &str, payload: &str, signature: Option<&str>, ) -> Result<(), H::Error>
Process a webhook from a string payload
§Arguments
- handler- Mutable reference to an event handler
- event_type- The type of event (e.g., “topic_created”)
- payload- The raw JSON payload as a string
- signature- Optional signature header for verification
Sourcepub fn process_json<H: WebhookEventHandler>(
    &self,
    handler: &mut H,
    event_type: &str,
    payload: Value,
    signature: Option<&str>,
) -> Result<(), H::Error>
 
pub fn process_json<H: WebhookEventHandler>( &self, handler: &mut H, event_type: &str, payload: Value, signature: Option<&str>, ) -> Result<(), H::Error>
Process a webhook from a JSON value
§Arguments
- handler- Mutable reference to an event handler
- event_type- The type of event (e.g., “topic_created”)
- payload- The JSON payload as a serde_json::Value
- signature- Optional signature header for verification
Trait Implementations§
Source§impl Clone for WebhookProcessor
 
impl Clone for WebhookProcessor
Source§fn clone(&self) -> WebhookProcessor
 
fn clone(&self) -> WebhookProcessor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for WebhookProcessor
 
impl Debug for WebhookProcessor
Auto Trait Implementations§
impl Freeze for WebhookProcessor
impl RefUnwindSafe for WebhookProcessor
impl Send for WebhookProcessor
impl Sync for WebhookProcessor
impl Unpin for WebhookProcessor
impl UnwindSafe for WebhookProcessor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more