From a80225b0a7d1b6c38c0b584ef9aa16ceeaffeb5e Mon Sep 17 00:00:00 2001 From: ghassmo Date: Mon, 21 Mar 2022 03:02:01 +0400 Subject: [PATCH] bin/taud: don't pass timestamp params to list function --- bin/tau-cli/src/main.rs | 31 ++++++++----------------------- bin/taud/src/main.rs | 25 ++++--------------------- 2 files changed, 12 insertions(+), 44 deletions(-) diff --git a/bin/tau-cli/src/main.rs b/bin/tau-cli/src/main.rs index a0bde5783..8f401cb8f 100644 --- a/bin/tau-cli/src/main.rs +++ b/bin/tau-cli/src/main.rs @@ -44,12 +44,6 @@ pub enum CliTauSubCommands { #[clap(short, long)] rank: Option, }, - /// List open tasks - List { - /// Month tasks - #[clap(short, long)] - month: Option, - }, /// 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 { } // 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) -> Result { - let req = jsonrpc::request(json!("list"), json!([month])); +async fn list(url: &str, params: Value) -> Result { + 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::()?, month[2..].parse::()?); - 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 { diff --git a/bin/taud/src/main.rs b/bin/taud/src/main.rs index f0fc8cb36..c2a2b9a08 100644 --- a/bin/taud/src/main.rs +++ b/bin/taud/src/main.rs @@ -1,4 +1,4 @@ -use std::{fs::create_dir_all, path::PathBuf, sync::Arc}; +use std::{fs::create_dir_all, sync::Arc}; use async_executor::Executor; use async_trait::async_trait; @@ -143,27 +143,10 @@ impl JsonRpcInterface { // RPCAPI: // 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(&self, id: Value, params: Value) -> JsonResult { - let args = params.as_array().unwrap(); - - if args.len() != 1 { - return JsonResult::Err(jsonerr(InvalidParams, None, id)) - } - - let result = || -> Result> { - let tasks: Vec = if args[0].is_i64() { - MonthTasks::load_or_create(&Timestamp(args[0].as_i64().unwrap()), &self.settings)? - .objects()? - } else { - MonthTasks::load_current_open_tasks(&self.settings)? - }; - - Ok(tasks) - }; - - match result() { + async fn list(&self, id: Value, _params: Value) -> JsonResult { + match MonthTasks::load_current_open_tasks(&self.settings) { Ok(tks) => JsonResult::Resp(jsonresp(json!(tks), id)), Err(e) => JsonResult::Err(jsonerr(ServerError(-32603), Some(e.to_string()), id)), }