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
use crate::config::EmailClientConfig; use crate::service::EmailService; use lightspeed_core::error::LightSpeedError; use log::*; use std::sync::Arc; pub mod config; pub mod model; pub mod repository; pub mod service; #[derive(Clone)] pub struct EmailClientModule { pub email_config: EmailClientConfig, pub email_service: Arc<EmailService>, } impl EmailClientModule { pub fn new(email_config: EmailClientConfig) -> Result<Self, LightSpeedError> { println!("Creating EmailClientModule"); info!("Creating EmailClientModule"); let email_service = Arc::new(EmailService::new(repository::email::new(email_config.clone())?)); Ok(EmailClientModule { email_config, email_service }) } } #[async_trait::async_trait] impl lightspeed_core::module::Module for EmailClientModule { async fn start(&mut self) -> Result<(), LightSpeedError> { info!("Starting EmailClientModule"); Ok(()) } }