aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuey-Liang Kao <s101062801@m101.nthu.edu.tw>2017-01-17 03:47:30 +0800
committerQuey-Liang Kao <s101062801@m101.nthu.edu.tw>2017-01-17 03:47:30 +0800
commit0466449099372abdde5f7a1ab9d5fa1788618a41 (patch)
treeb8c1180e093365bf85349aafb3255aabcfd9c526
parentc54a184a24f76eda473f585314716bd567dc14bf (diff)
parent26fb5e2bab2becf4bfddac250f3604205a2114aa (diff)
Merge branch 'dev' of github.com:NonerKao/todolist
-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
}
}