use std::process::ExitCode;
use clap::Args;
use crate::config::ResolvedContext;
use super::client;
#[derive(Debug, Args)]
pub struct ApproveArgs {
pub id: String,
#[arg(long)]
pub reason: Option<String>,
}
pub fn run_approve(args: ApproveArgs, ctx: &ResolvedContext) -> ExitCode {
let reason = super::reason_io::resolve_reason_from_process_stdin(args.reason);
let rt = tokio::runtime::Runtime::new().expect("failed to create tokio runtime");
let result = rt.block_on(client::approve_action(ctx, &args.id, reason.as_deref()));
match result {
Ok(resp) => {
println!("Approved: {} (status: {})", resp.id, resp.status);
ExitCode::SUCCESS
}
Err(e) => {
eprintln!("error: {e}");
ExitCode::FAILURE
}
}
}