|
|
@@ -44,12 +44,6 @@ pub enum CliTauSubCommands {
|
|
|
#[clap(short, long)]
|
|
|
rank: Option<u32>,
|
|
|
},
|
|
|
- /// List open tasks
|
|
|
- List {
|
|
|
- /// Month tasks
|
|
|
- #[clap(short, long)]
|
|
|
- month: Option<String>,
|
|
|
- },
|
|
|
/// Update/Edit an existing task by ID
|
|
|
Update {
|
|
|
/// Task ID
|
|
|
@@ -85,6 +79,8 @@ pub enum CliTauSubCommands {
|
|
|
/// Task ID
|
|
|
id: u64,
|
|
|
},
|
|
|
+ /// List open tasks
|
|
|
+ List {},
|
|
|
}
|
|
|
|
|
|
/// Tau cli
|
|
|
@@ -158,10 +154,10 @@ async fn add(url: &str, params: Value) -> Result<Value> {
|
|
|
}
|
|
|
|
|
|
// List tasks
|
|
|
-// --> {"jsonrpc": "2.0", "method": "list", "params": [month_date], "id": 1}
|
|
|
+// --> {"jsonrpc": "2.0", "method": "list", "params": [], "id": 1}
|
|
|
// <-- {"jsonrpc": "2.0", "result": [task, ...], "id": 1}
|
|
|
-async fn list(url: &str, month: Option<i64>) -> Result<Value> {
|
|
|
- let req = jsonrpc::request(json!("list"), json!([month]));
|
|
|
+async fn list(url: &str, params: Value) -> Result<Value> {
|
|
|
+ let req = jsonrpc::request(json!("list"), json!(params));
|
|
|
request(req, url.to_string()).await
|
|
|
}
|
|
|
|
|
|
@@ -261,24 +257,13 @@ async fn start(options: CliTau) -> Result<()> {
|
|
|
add(rpc_addr, json!([title, desc, assign, project, due, rank])).await?;
|
|
|
}
|
|
|
|
|
|
- Some(CliTauSubCommands::List { month }) => {
|
|
|
- let ts = if month.is_some() {
|
|
|
- let month = month.unwrap();
|
|
|
- assert!(month.len() == 4);
|
|
|
- let (m, y) = (month[..2].parse::<u32>()?, month[2..].parse::<i32>()?);
|
|
|
- let dt = NaiveDate::from_ymd(y + 2000, m, 1).and_hms(0, 0, 0);
|
|
|
-
|
|
|
- Some(dt.timestamp())
|
|
|
- } else {
|
|
|
- None
|
|
|
- };
|
|
|
+ Some(CliTauSubCommands::List {}) => {
|
|
|
+ let rep = list(rpc_addr, json!([])).await?;
|
|
|
|
|
|
let mut table = Table::new();
|
|
|
table.set_format(*format::consts::FORMAT_NO_BORDER_LINE_SEPARATOR);
|
|
|
table.set_titles(row!["ID", "Title", "Project", "Assigned", "Due", "Rank"]);
|
|
|
|
|
|
- let rep = list(rpc_addr, ts).await?;
|
|
|
-
|
|
|
let mut tasks = rep.as_array().unwrap().to_owned();
|
|
|
tasks.sort_by(|a, b| b["rank"].as_u64().cmp(&a["rank"].as_u64()));
|
|
|
|
|
|
@@ -356,7 +341,7 @@ async fn start(options: CliTau) -> Result<()> {
|
|
|
}
|
|
|
|
|
|
Some(CliTauSubCommands::GetComment { id }) => {
|
|
|
- let rep = list(rpc_addr, None).await?;
|
|
|
+ let rep = list(rpc_addr, json!([])).await?;
|
|
|
let tasks = rep.as_array().unwrap();
|
|
|
|
|
|
for task in tasks {
|