35 lines
697 B
Rust
35 lines
697 B
Rust
use crate::{
|
|
cli::print_task_detail,
|
|
repo::{self, Repository},
|
|
};
|
|
|
|
#[derive(clap::Args)]
|
|
pub struct Args {
|
|
#[clap(short, long)]
|
|
link: Option<String>,
|
|
|
|
#[clap(short, long)]
|
|
group: Option<String>,
|
|
|
|
name: String,
|
|
}
|
|
|
|
pub fn execute(repo: impl Repository, args: Args) {
|
|
let res = repo.insert_task(repo::InsertTaskData {
|
|
name: args.name,
|
|
link: args.link,
|
|
group: args.group,
|
|
index: None,
|
|
});
|
|
|
|
match res {
|
|
Ok(task) => {
|
|
println!("The task was added successfully");
|
|
print_task_detail(&task);
|
|
}
|
|
Err(err) => {
|
|
eprintln!("Cannot insert a new task: {}", err);
|
|
}
|
|
}
|
|
}
|