Skip to main content

tracevault_cli/commands/
logout.rs

1use crate::api_client::ApiClient;
2use crate::credentials::Credentials;
3
4pub async fn logout() -> Result<(), Box<dyn std::error::Error>> {
5    let creds = Credentials::load().ok_or("Not logged in. No credentials file found.")?;
6
7    let client = ApiClient::new(&creds.server_url, Some(&creds.token));
8    match client.logout().await {
9        Ok(()) => {}
10        Err(e) => eprintln!("Warning: could not invalidate server session: {e}"),
11    }
12
13    Credentials::delete()?;
14    println!("Logged out. Credentials removed.");
15    Ok(())
16}