aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuey-Liang Kao <nonerkao@gmail.com>2017-01-16 17:27:57 +0800
committerQuey-Liang Kao <nonerkao@gmail.com>2017-01-16 17:27:57 +0800
commit26fb5e2bab2becf4bfddac250f3604205a2114aa (patch)
tree603eab9d2bf44e312df07040b86d08ad9cda4e14
parent05b64e4315ba17960f5bb2119e79eec2476459b2 (diff)
Implement the ID checking in getID()
-rw-r--r--todolist/app.go38
1 files changed, 15 insertions, 23 deletions
diff --git a/todolist/app.go b/todolist/app.go
index 7644d46..19eed08 100644
--- a/todolist/app.go
+++ b/todolist/app.go
@@ -37,75 +37,62 @@ func (a *App) AddTodo(input string) {
func (a *App) DeleteTodo(input string) {
a.Load()
- id := a.getId(input)
+ id, _ := a.getId(input)
if id != -1 {
a.TodoList.Delete(id)
a.Save()
fmt.Println("Todo deleted.")
- } else {
- fmt.Println("Could not find id.")
}
}
func (a *App) CompleteTodo(input string) {
a.Load()
- id := a.getId(input)
+ id, _ := a.getId(input)
if id != -1 {
a.TodoList.Complete(id)
a.Save()
fmt.Println("Todo completed.")
- } else {
- fmt.Println("Could not find id.")
}
}
func (a *App) UncompleteTodo(input string) {
a.Load()
- id := a.getId(input)
+ id, _ := a.getId(input)
if id != -1 {
a.TodoList.Uncomplete(id)
a.Save()
fmt.Println("Todo uncompleted.")
- } else {
- fmt.Println("Could not find id.")
}
}
func (a *App) ArchiveTodo(input string) {
a.Load()
- id := a.getId(input)
+ id, _ := a.getId(input)
if id != -1 {
a.TodoList.Archive(id)
a.Save()
fmt.Println("Todo archived.")
- } else {
- fmt.Println("Could not find id.")
}
}
func (a *App) UnarchiveTodo(input string) {
a.Load()
- id := a.getId(input)
+ id, _ := a.getId(input)
if id != -1 {
a.TodoList.Unarchive(id)
a.Save()
fmt.Println("Todo unarchived.")
- } else {
- fmt.Println("Could not find id.")
}
}
func (a *App) EditTodoDue(input string) {
a.Load()
- id := a.getId(input)
+ id, todo := 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.")
}
}
@@ -129,14 +116,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
}
}