diff options
| author | Grant Ammons <gammons@gmail.com> | 2016-05-01 15:07:45 -0400 |
|---|---|---|
| committer | Grant Ammons <gammons@gmail.com> | 2016-05-01 15:07:45 -0400 |
| commit | 0905a863f50d9631e6c44488b952622e75d79785 (patch) | |
| tree | 0634e9bd9e176660ad3d3260b24f08825aa85c67 /todolist/file_store.go | |
| parent | ef9427646b9464d1f8c376f75741e737117a1a83 (diff) | |
Implement delete logic
Diffstat (limited to 'todolist/file_store.go')
| -rw-r--r-- | todolist/file_store.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/todolist/file_store.go b/todolist/file_store.go index 3b5fbfe..992aeb3 100644 --- a/todolist/file_store.go +++ b/todolist/file_store.go @@ -23,6 +23,35 @@ func (f *FileStore) Add(todo *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 nil +} + +func (f *FileStore) Delete(id int) { + i := -1 + for index, todo := range f.Data { + if todo.Id == id { + i = index + } + } + + f.Data = append(f.Data[:i], f.Data[i+1:]...) +} + +func (f *FileStore) IndexOf(todoToFind *Todo) int { + for i, todo := range f.Data { + if todo.Id == todoToFind.Id { + return i + } + } + return -1 +} + func (f *FileStore) Load() { data, err := ioutil.ReadFile(f.FileLocation) if err != nil { |
