pub struct WebhookLifecycle { /* private fields */ }Expand description
Subscription lifecycle hooks that call external HTTP endpoints.
Implementations§
Source§impl WebhookLifecycle
impl WebhookLifecycle
Sourcepub fn new(
on_connect_url: Option<String>,
on_disconnect_url: Option<String>,
on_subscribe_url: Option<String>,
on_unsubscribe_url: Option<String>,
timeout_ms: u64,
) -> Self
pub fn new( on_connect_url: Option<String>, on_disconnect_url: Option<String>, on_subscribe_url: Option<String>, on_unsubscribe_url: Option<String>, timeout_ms: u64, ) -> Self
Create a new webhook lifecycle from configured URLs.
timeout_ms controls the maximum time to wait for on_connect and
on_subscribe responses. on_disconnect and on_unsubscribe are
fire-and-forget (timeout is irrelevant for those hooks).
Sourcepub fn from_config(config: &SubscriptionsConfig) -> Option<Self>
pub fn from_config(config: &SubscriptionsConfig) -> Option<Self>
Build from typed subscriptions configuration.
Returns None if no hooks are configured.
Sourcepub fn from_schema_json(subscriptions: &Value) -> Option<Self>
pub fn from_schema_json(subscriptions: &Value) -> Option<Self>
Build from compiled schema JSON (subscriptions.hooks section).
Returns None if no hooks are configured.
Trait Implementations§
Source§impl SubscriptionLifecycle for WebhookLifecycle
impl SubscriptionLifecycle for WebhookLifecycle
Source§fn on_connect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
params: &'life1 Value,
connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_connect<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
params: &'life1 Value,
connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
§Errors
Returns an error string if the HTTP POST to the on_connect webhook URL fails
or returns a non-2xx status code.
Source§fn on_subscribe<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
variables: &'life2 Value,
connection_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn on_subscribe<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
subscription_name: &'life1 str,
variables: &'life2 Value,
connection_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
§Errors
Returns an error string if the HTTP POST to the on_subscribe webhook URL fails
or returns a non-2xx status code.
Source§fn on_disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_disconnect<'life0, 'life1, 'async_trait>(
&'life0 self,
connection_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Called when the
WebSocket connection closes (for any reason).Source§fn on_unsubscribe<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription_id: &'life1 str,
connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn on_unsubscribe<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
subscription_id: &'life1 str,
connection_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Called when a client sends
complete for a subscription.Auto Trait Implementations§
impl Freeze for WebhookLifecycle
impl !RefUnwindSafe for WebhookLifecycle
impl Send for WebhookLifecycle
impl Sync for WebhookLifecycle
impl Unpin for WebhookLifecycle
impl UnsafeUnpin for WebhookLifecycle
impl !UnwindSafe for WebhookLifecycle
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
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