aboutsummaryrefslogtreecommitdiffstats
path: root/todolist/file_store.go
diff options
context:
space:
mode:
authorGrant Ammons <gammons@gmail.com>2016-05-01 15:07:45 -0400
committerGrant Ammons <gammons@gmail.com>2016-05-01 15:07:45 -0400
commit0905a863f50d9631e6c44488b952622e75d79785 (patch)
tree0634e9bd9e176660ad3d3260b24f08825aa85c67 /todolist/file_store.go
parentef9427646b9464d1f8c376f75741e737117a1a83 (diff)
Implement delete logic
Diffstat (limited to 'todolist/file_store.go')
-rw-r--r--todolist/file_store.go29
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 {