use color_eyre::Result;
use crate::{
api::rest::{CreateComment, FullComment, Gateway, Project, ThreadID},
interactive,
};
#[derive(clap::Parser, Debug)]
pub struct Params {
content: String,
#[clap(flatten)]
project: interactive::Selection<Project>,
}
pub async fn comment(params: Params, gw: &Gateway) -> Result<()> {
let projects = gw.projects().await?;
let project = params.project.mandatory(&projects)?;
let comment = gw
.create_comment(&CreateComment {
thread: ThreadID::Project {
project_id: project.id.clone(),
},
content: params.content,
})
.await?;
println!("created comment: {}", FullComment(&comment));
Ok(())
}