1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
use crate::connector::SlackClientHyperConnector; use std::future::Future; use futures::future::{BoxFuture, FutureExt}; use hyper::{Body, Request, Response}; pub use command_events::*; pub use interaction_events::*; pub use oauth::*; pub use push_events::*; use slack_morphism::listener::SlackClientEventsListenerEnvironment; pub use slack_morphism::signature_verifier::*; use std::sync::Arc; mod command_events; mod interaction_events; mod oauth; mod push_events; pub struct SlackClientEventsHyperListener { pub environment: Arc<SlackClientEventsListenerEnvironment<SlackClientHyperConnector>>, } impl SlackClientEventsHyperListener { pub fn new( environment: Arc<SlackClientEventsListenerEnvironment<SlackClientHyperConnector>>, ) -> Self { Self { environment } } } pub fn chain_service_routes_fn<'a, R, D, FR, FD>( route: R, default: D, ) -> impl Fn( Request<Body>, ) -> BoxFuture<'a, Result<Response<Body>, Box<dyn std::error::Error + Send + Sync + 'a>>> + 'a + Send + Clone where R: Fn(Request<Body>, D) -> FR + 'a + Clone + Send, D: Fn(Request<Body>) -> FD + 'a + Clone + Send, FR: Future<Output = Result<Response<Body>, Box<dyn std::error::Error + Send + Sync + 'a>>> + 'a + Send, FD: Future<Output = Result<Response<Body>, Box<dyn std::error::Error + Send + Sync + 'a>>> + 'a + Send, { move |req: Request<Body>| route(req, default.clone()).boxed() }