diff --git a/src/main.rs b/src/main.rs index e0acec0..35e8615 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ use tokio::sync::Mutex; use tracing::{error, Level}; use tracing_subscriber::FmtSubscriber; +use qobuzd::api::QobuzApi; use qobuzd::auth::QobuzAuth; use qobuzd::config::Config; use qobuzd::qconnect::QConnect; @@ -33,6 +34,7 @@ enum Commands { }, Logout, Status, + User, Serve, } @@ -94,6 +96,26 @@ async fn main() -> Result<()> { } } + Commands::User => { + let guard = auth.lock().await; + let token = guard.get_valid_token().await?; + drop(guard); + let api = QobuzApi::new(&config); + match api.get_user(&token).await { + Ok(user) => { + println!("User: {}", user.display_name.unwrap_or_default()); + println!("Email: {}", user.email); + if let Some(sub) = &user.subscription { + println!("Subscription: {}", sub.offer); + } + } + Err(e) => { + error!("Failed: {}", e); + std::process::exit(1); + } + } + } + Commands::Serve => { let guard = auth.lock().await; let token = match guard.get_valid_token().await {