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 handlerevent_type- The type of event (e.g., “topic_created”)payload- The raw JSON payload as a stringsignature- 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 handlerevent_type- The type of event (e.g., “topic_created”)payload- The JSON payload as a serde_json::Valuesignature- 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