aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--todolist/app.go94
1 files changed, 46 insertions, 48 deletions
diff --git a/todolist/app.go b/todolist/app.go
index 45b9812..58b4801 100644
--- a/todolist/app.go
+++ b/todolist/app.go
@@ -37,76 +37,69 @@ func (a *App) AddTodo(input string) {
func (a *App) DeleteTodo(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- a.TodoList.Delete(id)
- a.Save()
- fmt.Println("Todo deleted.")
- } else {
- fmt.Println("Could not find id.")
+ id, _ := a.getId(input)
+ if id == -1 {
+ return
}
+ a.TodoList.Delete(id)
+ a.Save()
+ fmt.Println("Todo deleted.")
}
func (a *App) CompleteTodo(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- a.TodoList.Complete(id)
- a.Save()
- fmt.Println("Todo completed.")
- } else {
- fmt.Println("Could not find id.")
+ id, _ := a.getId(input)
+ if id == -1 {
+ return
}
+ a.TodoList.Complete(id)
+ a.Save()
+ fmt.Println("Todo completed.")
}
func (a *App) UncompleteTodo(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- a.TodoList.Uncomplete(id)
- a.Save()
- fmt.Println("Todo uncompleted.")
- } else {
- fmt.Println("Could not find id.")
+ id, _ := a.getId(input)
+ if id == -1 {
+ return
}
+ a.TodoList.Uncomplete(id)
+ a.Save()
+ fmt.Println("Todo uncompleted.")
}
func (a *App) ArchiveTodo(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- a.TodoList.Archive(id)
- a.Save()
- fmt.Println("Todo archived.")
- } else {
- fmt.Println("Could not find id.")
+ id, _ := a.getId(input)
+ if id == -1 {
+ return
}
+ a.TodoList.Archive(id)
+ a.Save()
+ fmt.Println("Todo archived.")
}
func (a *App) UnarchiveTodo(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- a.TodoList.Unarchive(id)
- a.Save()
- fmt.Println("Todo unarchived.")
- } else {
- fmt.Println("Could not find id.")
+ id, _ := a.getId(input)
+ if id == -1 {
+ return
}
+ a.TodoList.Unarchive(id)
+ a.Save()
+ fmt.Println("Todo unarchived.")
}
func (a *App) EditTodoDue(input string) {
a.Load()
- id := a.getId(input)
- if id != -1 {
- todo := a.TodoList.FindById(id)
- parser := &Parser{}
- todo.Due = parser.Due(input, time.Now())
- a.Save()
- fmt.Println("Todo due date updated.")
- } else {
- fmt.Println("Could not find id.")
+ id, todo := a.getId(input)
+ if id == -1 {
+ return
}
+ parser := &Parser{}
+ todo.Due = parser.Due(input, time.Now())
+ a.Save()
+ fmt.Println("Todo due date updated.")
}
func (a *App) ArchiveCompleted() {
@@ -129,14 +122,19 @@ func (a *App) ListTodos(input string) {
formatter.Print()
}
-func (a *App) getId(input string) int {
-
+func (a *App) getId(input string) (int, *Todo) {
re, _ := regexp.Compile("\\d+")
if re.MatchString(input) {
id, _ := strconv.Atoi(re.FindString(input))
- return id
+ todo := a.TodoList.FindById(id)
+ if todo == nil {
+ fmt.Println("No such id.")
+ return -1, nil
+ }
+ return id, todo
} else {
- return -1
+ fmt.Println("Invalid id.")
+ return -1, nil
}
}