From 656f7e9ea0a10245a5bfac5576a870eb3db80050 Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Sun, 23 Jan 2022 15:22:41 +0000 Subject: [PATCH] replica.create_task -> import_task_with_uuid --- cli/src/invocation/cmd/import.rs | 2 +- cli/src/invocation/cmd/import_tdb2.rs | 2 +- taskchampion/src/replica.rs | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/cli/src/invocation/cmd/import.rs b/cli/src/invocation/cmd/import.rs index 5e33e22ef..249c1ad46 100644 --- a/cli/src/invocation/cmd/import.rs +++ b/cli/src/invocation/cmd/import.rs @@ -77,7 +77,7 @@ fn import_task( .as_str() .ok_or_else(|| anyhow!("uuid is not a string"))?; let uuid = Uuid::parse_str(uuid)?; - replica.create_task(uuid)?; + replica.import_task_with_uuid(uuid)?; let mut description = None; for (k, v) in task_json.drain() { diff --git a/cli/src/invocation/cmd/import_tdb2.rs b/cli/src/invocation/cmd/import_tdb2.rs index e441652c5..8db967699 100644 --- a/cli/src/invocation/cmd/import_tdb2.rs +++ b/cli/src/invocation/cmd/import_tdb2.rs @@ -47,7 +47,7 @@ fn import_task( } } let uuid = uuid.ok_or_else(|| anyhow!("task has no uuid"))?; - replica.create_task(uuid)?; + replica.import_task_with_uuid(uuid)?; let mut description = None; for attr in line.attrs.drain(..) { diff --git a/taskchampion/src/replica.rs b/taskchampion/src/replica.rs index e7862dab5..8d673b23c 100644 --- a/taskchampion/src/replica.rs +++ b/taskchampion/src/replica.rs @@ -105,7 +105,9 @@ impl Replica { /// Create a new task. pub fn new_task(&mut self, status: Status, description: String) -> anyhow::Result { let uuid = Uuid::new_v4(); - let mut task = self.create_task(uuid)?.into_mut(self); + self.add_undo_point(false)?; + let taskmap = self.taskdb.apply(SyncOp::Create { uuid })?; + let mut task = Task::new(uuid, taskmap).into_mut(self); task.set_description(description)?; task.set_status(status)?; task.set_entry(Utc::now())?; @@ -116,7 +118,7 @@ impl Replica { /// Create a new, empty task with the given UUID. This is useful for importing tasks, but /// otherwise should be avoided in favor of `new_task`. If the task already exists, this /// does nothing and returns the existing task. - pub fn create_task(&mut self, uuid: Uuid) -> anyhow::Result { + pub fn import_task_with_uuid(&mut self, uuid: Uuid) -> anyhow::Result { self.add_undo_point(false)?; let taskmap = self.taskdb.apply(SyncOp::Create { uuid })?; Ok(Task::new(uuid, taskmap))