mod fetcher;
mod handlers;
mod table_adapter;
use crate::common::auth_client::AuthenticatedClient;
use crate::common::display_options::DisplayOptions;
use anyhow::Result;
use handlers::WorldSearchOptions;
use vrcli::WorldsAction;
pub async fn handle_worlds_command(action: WorldsAction) -> Result<()> {
let auth_client = AuthenticatedClient::new().await?;
let api_config = auth_client.api_config();
match action {
WorldsAction::Search {
query,
limit,
offset,
json,
long,
} => {
let search_options = WorldSearchOptions {
query: query.clone(),
limit,
offset,
};
let display_options = DisplayOptions::from_flags(
long, long, long, long, long, false, json, );
handlers::handle_search_action(api_config, search_options, display_options).await
}
WorldsAction::Get { world_id, json } => {
let display_options = DisplayOptions::from_flags(
false, false, false, false, false, false, json, );
handlers::handle_get_action(api_config, &world_id, display_options).await
}
}
}