diff options
| author | Grant Ammons <gammons@gmail.com> | 2016-05-03 15:02:24 -0400 |
|---|---|---|
| committer | Grant Ammons <gammons@gmail.com> | 2016-05-03 15:02:24 -0400 |
| commit | 017ddfd50eec98e4ee8dd42a1dac800cdb674171 (patch) | |
| tree | db289ebcb7b0aaf4c1e24370a066072688c68724 /todolist/file_store.go | |
| parent | 82dbd4a62ac62d97a61386696d992e3400167d97 (diff) | |
Make everything a pointer, add archive completed fn
Diffstat (limited to 'todolist/file_store.go')
| -rw-r--r-- | todolist/file_store.go | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/todolist/file_store.go b/todolist/file_store.go index 4556e6c..c7c23c7 100644 --- a/todolist/file_store.go +++ b/todolist/file_store.go @@ -11,7 +11,7 @@ import ( type FileStore struct { FileLocation string - Data []Todo + Data []*Todo } func NewFileStore() *FileStore { @@ -21,13 +21,13 @@ func NewFileStore() *FileStore { func (f *FileStore) Add(todo *Todo) { todo.Id = f.NextId() - f.Data = append(f.Data, *todo) + f.Data = append(f.Data, todo) } func (f *FileStore) FindById(id int) *Todo { for _, todo := range f.Data { if todo.Id == id { - return &todo + return todo } } return nil @@ -48,28 +48,28 @@ func (f *FileStore) Complete(id int) { todo := f.FindById(id) todo.Completed = true f.Delete(id) - f.Data = append(f.Data, *todo) + f.Data = append(f.Data, todo) } func (f *FileStore) Uncomplete(id int) { todo := f.FindById(id) todo.Completed = false f.Delete(id) - f.Data = append(f.Data, *todo) + f.Data = append(f.Data, todo) } func (f *FileStore) Archive(id int) { todo := f.FindById(id) todo.Archived = true f.Delete(id) - f.Data = append(f.Data, *todo) + f.Data = append(f.Data, todo) } func (f *FileStore) Unarchive(id int) { todo := f.FindById(id) todo.Archived = false f.Delete(id) - f.Data = append(f.Data, *todo) + f.Data = append(f.Data, todo) } func (f *FileStore) IndexOf(todoToFind *Todo) int { @@ -102,7 +102,7 @@ func (f *FileStore) Save() { } } -type ByDate []Todo +type ByDate []*Todo func (a ByDate) Len() int { return len(a) } func (a ByDate) Swap(i, j int) { a[i], a[j] = a[j], a[i] } @@ -112,7 +112,7 @@ func (a ByDate) Less(i, j int) bool { return t1Due.Before(t2Due) } -func (f *FileStore) Todos() []Todo { +func (f *FileStore) Todos() []*Todo { sort.Sort(ByDate(f.Data)) return f.Data } |
