Skip to main content

nestrs_webhooks/
module.rs

1use crate::options::WebhooksOptions;
2use crate::WebhooksService;
3use axum::Router;
4use nestrs_core::{DynamicModule, ProviderRegistry};
5use std::any::TypeId;
6use std::sync::Arc;
7
8pub struct WebhooksModule;
9
10impl WebhooksModule {
11    pub fn register(options: WebhooksOptions) -> DynamicModule {
12        let mut registry = ProviderRegistry::new();
13        let service = Arc::new(WebhooksService::new(
14            options.secret.clone(),
15            options.outbox.clone(),
16        ));
17        registry.register_use_value::<WebhooksService>(service);
18        DynamicModule::from_parts(
19            registry,
20            Router::new(),
21            vec![TypeId::of::<WebhooksService>()],
22        )
23    }
24}