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(())
}
}