diff options
| author | Grant Ammons <gammons@gmail.com> | 2016-04-26 09:01:40 -0400 |
|---|---|---|
| committer | Grant Ammons <gammons@gmail.com> | 2016-04-26 09:01:40 -0400 |
| commit | e3213b3ef2c84387b66eeb731f5493c5e6da6a5d (patch) | |
| tree | 46b5ee148e7fd578d992f08ab89ba1d24a322d29 /todolist/file_store.go | |
| parent | a0f7203996439210b2a40663eeeeb8563ab03d68 (diff) | |
Get adding a todo working
Diffstat (limited to 'todolist/file_store.go')
| -rw-r--r-- | todolist/file_store.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/todolist/file_store.go b/todolist/file_store.go index ac3dff5..3b5fbfe 100644 --- a/todolist/file_store.go +++ b/todolist/file_store.go @@ -18,6 +18,11 @@ func NewFileStore() *FileStore { return &FileStore{FileLocation: usr.HomeDir + "/.todos.json"} } +func (f *FileStore) Add(todo *Todo) { + todo.Id = f.NextId() + f.Data = append(f.Data, *todo) +} + func (f *FileStore) Load() { data, err := ioutil.ReadFile(f.FileLocation) if err != nil { @@ -32,6 +37,23 @@ func (f *FileStore) Load() { } } +func (f *FileStore) Save() { + data, _ := json.Marshal(f.Data) + if err := ioutil.WriteFile(f.FileLocation, []byte(data), 0644); err != nil { + fmt.Println("Error writing json file", err) + } +} + func (f *FileStore) Todos() []Todo { return f.Data } + +func (f *FileStore) NextId() int { + maxId := 0 + for _, todo := range f.Data { + if todo.Id > maxId { + maxId = todo.Id + } + } + return maxId + 1 +} |
