pub struct TypedWebhook<T> {
pub payload: T,
pub meta: WebhookPayload,
}Expand description
Actix-web extractor that verifies the signature AND deserializes the JSON body
into T.
§Example
use actix_web::{web, HttpResponse, Responder};
use serde::Deserialize;
use webhooksmith_actix::TypedWebhook;
#[derive(Deserialize)]
struct OrderCreated { order_id: u64 }
async fn handler(webhook: TypedWebhook<OrderCreated>) -> impl Responder {
println!("order: {}", webhook.payload.order_id);
HttpResponse::Ok().finish()
}Fields§
§payload: T§meta: WebhookPayloadTrait Implementations§
Source§impl<T: DeserializeOwned + 'static> FromRequest for TypedWebhook<T>
impl<T: DeserializeOwned + 'static> FromRequest for TypedWebhook<T>
Source§type Error = WebhookError
type Error = WebhookError
The associated error which can be returned.
Source§type Future = Pin<Box<dyn Future<Output = Result<TypedWebhook<T>, <TypedWebhook<T> as FromRequest>::Error>>>>
type Future = Pin<Box<dyn Future<Output = Result<TypedWebhook<T>, <TypedWebhook<T> as FromRequest>::Error>>>>
Future that resolves to a
Self. Read moreSource§fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future
fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future
Create a
Self from request parts asynchronously.Auto Trait Implementations§
impl<T> !Freeze for TypedWebhook<T>
impl<T> RefUnwindSafe for TypedWebhook<T>where
T: RefUnwindSafe,
impl<T> Send for TypedWebhook<T>where
T: Send,
impl<T> Sync for TypedWebhook<T>where
T: Sync,
impl<T> Unpin for TypedWebhook<T>where
T: Unpin,
impl<T> UnsafeUnpin for TypedWebhook<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for TypedWebhook<T>where
T: UnwindSafe,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more