rngo-cli 0.22.0

Data simulation CLI using api.rngo.dev
use crate::config::{get_config, set_user_config};
use anyhow::Result;
use inquire::{Confirm, Password};

pub async fn login() -> Result<()> {
    let api_key = Password::new("API Key:").without_confirmation().prompt()?;
    set_user_config(|config| config.api_key = Some(api_key))?;
    println!("Successfully logged in");
    Ok(())
}

pub async fn logout() -> Result<()> {
    let config = get_config()?;

    if config.api_key.is_none() {
        println!("You are not logged in");
        return Ok(());
    }

    let confirmed = Confirm::new("Are you sure?").with_default(false).prompt()?;

    if !confirmed {
        println!("Log out cancelled");
        return Ok(());
    }

    set_user_config(|config| config.api_key = None)?;
    println!("Successfully logged out");
    Ok(())
}