#[cfg(feature = "spring-rs")]
use async_trait::async_trait;
#[cfg(feature = "spring-rs")]
use spring::app::AppBuilder;
#[cfg(feature = "spring-rs")]
use spring::config::ConfigRegistry;
#[cfg(feature = "spring-rs")]
use spring::plugin::MutableComponentRegistry;
#[cfg(feature = "spring-rs")]
use spring::plugin::Plugin;
#[cfg(feature = "spring-rs")]
use crate::config::JPushConfig;
pub mod config;
pub mod client;
pub mod msg;
#[cfg(feature = "spring-rs")]
pub struct JPushPlugin;
#[cfg(feature = "spring-rs")]
#[async_trait]
impl Plugin for JPushPlugin {
async fn build(&self, app: &mut AppBuilder) {
let jpush_config = app.get_config::<JPushConfig>().expect("jpush config load failed");
let client = Self::get_client(jpush_config);
app.add_component(client);
}
}
#[cfg(feature = "spring-rs")]
impl JPushPlugin {
pub fn get_client(config: JPushConfig) -> client::JPushClient {
client::JPushClient::new(config)
}
}