mod error;
mod fcm;
mod token_manager;
pub use error::{FcmError, NetworkError};
pub use fcm::{send_fcm_message, send_fcm_message_with_url, FcmNotification};
pub use token_manager::{SharedTokenManager, TokenManager};
use tracing::{info, instrument};
#[instrument(level = "info")]
pub fn create_shared_token_manager(
google_credentials_location: &str,
) -> Result<SharedTokenManager, FcmError> {
info!("Creating shared token manager");
let manager = TokenManager::new(google_credentials_location)?;
Ok(std::sync::Arc::new(tokio::sync::Mutex::new(manager)))
}