use comfy_table::{presets::UTF8_FULL_CONDENSED, Table};
use eyre::Result;
use crate::client::Client;
pub async fn run(client: &Client, json: bool) -> Result<()> {
let resp: serde_json::Value = client.get("/auth/key-info").await?;
if json {
println!("{}", serde_json::to_string_pretty(&resp)?);
return Ok(());
}
let status = resp["status"].as_str().unwrap_or("unknown");
let quota_total = resp["quota_total"].as_u64().unwrap_or(0);
let quota_used = resp["quota_used"].as_u64().unwrap_or(0);
let quota_remaining = resp["quota_remaining"].as_u64().unwrap_or(0);
let created = resp["created_at"].as_str().unwrap_or("-");
let wallet = resp["wallet"].as_str().unwrap_or("-");
let mut table = Table::new();
table.load_preset(UTF8_FULL_CONDENSED);
table.set_header(vec!["API Key Info", ""]);
table.add_row(vec!["Status", status]);
table.add_row(vec!["Wallet", wallet]);
table.add_row(vec!["Quota Total", "a_total.to_string()]);
table.add_row(vec!["Quota Used", "a_used.to_string()]);
table.add_row(vec!["Quota Remaining", "a_remaining.to_string()]);
table.add_row(vec!["Created", created]);
println!("{table}");
Ok(())
}