diff --git a/bin/tau/tau-cli/src/main.rs b/bin/tau/tau-cli/src/main.rs
index 46f024d98..40de6a6d7 100644
--- a/bin/tau/tau-cli/src/main.rs
+++ b/bin/tau/tau-cli/src/main.rs
@@ -253,11 +253,12 @@ fn main() -> Result<()> {
}
let base_task = task_from_cli(values)?;
- for (id, task) in tasks_local_id {
+ for id in ids_clone {
+ let task = tasks_local_id.get(&(id as usize)).unwrap();
let res = tau.update(&task.ref_id, base_task.clone()).await?;
if res {
let tsk = tau.get_task_by_ref_id(&task.ref_id).await?;
- print_task_info(id, tsk)?;
+ print_task_info(id as usize, tsk)?;
}
}
diff --git a/bin/tau/tau-cli/src/rpc.rs b/bin/tau/tau-cli/src/rpc.rs
index 35087620f..965376b15 100644
--- a/bin/tau/tau-cli/src/rpc.rs
+++ b/bin/tau/tau-cli/src/rpc.rs
@@ -16,6 +16,8 @@
* along with this program. If not, see .
*/
+use std::collections::HashMap;
+
use darkfi::{rpc::jsonrpc::JsonRequest, Result};
use log::debug;
use tinyjson::JsonValue;
@@ -75,28 +77,29 @@ impl Tau {
/// Update existing task given it's ID and some params.
pub async fn update(&self, ref_id: &str, task: BaseTask) -> Result {
- let mut params = vec![
- JsonValue::String(task.title.clone()),
- JsonValue::Array(task.tags.iter().map(|x| JsonValue::String(x.clone())).collect()),
- JsonValue::String(task.desc.unwrap_or("".to_string())),
- JsonValue::Array(task.assign.iter().map(|x| JsonValue::String(x.clone())).collect()),
- JsonValue::Array(task.project.iter().map(|x| JsonValue::String(x.clone())).collect()),
- ];
+ let mut params = HashMap::new();
+
+ let map = |x: &String| JsonValue::String(x.clone().to_owned());
+ params.insert("title".into(), JsonValue::String(task.title.clone()));
+ params.insert("desc".into(), JsonValue::String(task.desc.unwrap_or("".to_string())));
+ params.insert("tags".into(), JsonValue::Array(task.tags.iter().map(map).collect()));
+ params.insert("assign".into(), JsonValue::Array(task.assign.iter().map(map).collect()));
+ params.insert("project".into(), JsonValue::Array(task.project.iter().map(map).collect()));
let due = if let Some(num) = task.due {
JsonValue::String(num.to_string())
} else {
JsonValue::Null
};
- params.push(due);
+ params.insert("due".into(), due);
let rank =
if let Some(num) = task.rank { JsonValue::Number(num.into()) } else { JsonValue::Null };
- params.push(rank);
+ params.insert("rank".into(), rank);
let req = JsonRequest::new(
"update",
- vec![JsonValue::String(ref_id.into()), JsonValue::Array(params)],
+ vec![JsonValue::String(ref_id.into()), JsonValue::Object(params)],
);
let rep = self.rpc_client.request(req).await?;