♻️ refactor(cli): use gmail client for label operations

- replace credential file with gmail client for label operations
- use gmail client to list labels
This commit is contained in:
Jeremiah Russell
2025-10-13 13:49:20 +01:00
committed by Jeremiah Russell
parent da8304e02f
commit 04478a13f8

View File

@@ -7,7 +7,7 @@ mod message_cli;
mod run_cli; mod run_cli;
mod trash_cli; mod trash_cli;
use cull_gmail::{Config, Result}; use cull_gmail::{Config, GmailClient, Result};
use config_cli::ConfigCli; use config_cli::ConfigCli;
use delete_cli::DeleteCli; use delete_cli::DeleteCli;
@@ -75,10 +75,13 @@ async fn main() {
async fn run(args: Cli) -> Result<()> { async fn run(args: Cli) -> Result<()> {
let config = get_config()?; let config = get_config()?;
log::trace!("Configuration loaded: {config:#?}"); log::trace!("Configuration loaded: {config:#?}");
let client = GmailClient::new(config.credential_file()).await?;
match args.sub_command { match args.sub_command {
SubCmds::Config(config_cli) => config_cli.run(config), SubCmds::Config(config_cli) => config_cli.run(config),
SubCmds::Message(list_cli) => list_cli.run(config.credential_file()).await, SubCmds::Message(list_cli) => list_cli.run(config.credential_file()).await,
SubCmds::Labels(label_cli) => label_cli.run(config.credential_file()).await, SubCmds::Labels(label_cli) => label_cli.run(client).await,
SubCmds::Trash(trash_cli) => trash_cli.run(config.credential_file()).await, SubCmds::Trash(trash_cli) => trash_cli.run(config.credential_file()).await,
SubCmds::Delete(delete_cli) => delete_cli.run(config.credential_file()).await, SubCmds::Delete(delete_cli) => delete_cli.run(config.credential_file()).await,
SubCmds::Run(run_cli) => run_cli.run(config).await, SubCmds::Run(run_cli) => run_cli.run(config).await,