Dastan-glitch 2 лет назад
Родитель
Сommit
a13b5f36a9
2 измененных файлов с 16 добавлено и 12 удалено
  1. 3 2
      bin/tau/tau-cli/src/main.rs
  2. 13 10
      bin/tau/tau-cli/src/rpc.rs

+ 3 - 2
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)?;
                         }
                     }
 

+ 13 - 10
bin/tau/tau-cli/src/rpc.rs

@@ -16,6 +16,8 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
+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<bool> {
-        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?;