From 0905a863f50d9631e6c44488b952622e75d79785 Mon Sep 17 00:00:00 2001 From: Grant Ammons Date: Sun, 1 May 2016 15:07:45 -0400 Subject: Implement delete logic --- todolist/file_store.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'todolist/file_store.go') 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 { -- cgit v1.3