diff options
| author | Ingo Richter <ingo.richter+github@gmail.com> | 2017-04-08 18:24:16 -0700 |
|---|---|---|
| committer | Ingo Richter <ingo.richter+github@gmail.com> | 2017-04-08 18:24:16 -0700 |
| commit | d2df602c25afe3193e2b4d434042b47de64a00e6 (patch) | |
| tree | db5b17db8d45ff1a96a52fc8c15ded3713aa1c3e /todolist/todo_item.go | |
| parent | 146f19e1dc8143096bca6bfd0adf2e1f8d9be7b7 (diff) | |
Add `CompletedDate` to todo item.
`CompletedDate` will save a timestamp in ISO8601 format (Internet date/
time format to preserve timezone information)
Added a new `Complete` and `Uncomplete` method for todo_item.
Currently a todo has a boolean flag and the timestamp to indicate that
the item is completed. The boolean flag could be kept for backward
compatibility (reading the json into memory), but should be omitted for
files being written.
Diffstat (limited to 'todolist/todo_item.go')
| -rw-r--r-- | todolist/todo_item.go | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/todolist/todo_item.go b/todolist/todo_item.go index 273df8d..c208f9f 100644 --- a/todolist/todo_item.go +++ b/todolist/todo_item.go @@ -2,15 +2,19 @@ package todolist import "time" +// Timestamp format to include date, time with timezone support. Easy to parse +const ISO8601_TIMESTAMP_FORMAT = "2006-01-02T15:04:05Z07:00" + type Todo struct { - Id int `json:"id"` - Subject string `json:"subject"` - Projects []string `json:"projects"` - Contexts []string `json:"contexts"` - Due string `json:"due"` - Completed bool `json:"completed"` - Archived bool `json:"archived"` - IsPriority bool `json:"isPriority"` + Id int `json:"id"` + Subject string `json:"subject"` + Projects []string `json:"projects"` + Contexts []string `json:"contexts"` + Due string `json:"due"` + Completed bool `json:"completed"` + CompletedDate string `json:"completedDate"` + Archived bool `json:"archived"` + IsPriority bool `json:"isPriority"` } func NewTodo() *Todo { @@ -30,3 +34,13 @@ func (t Todo) CalculateDueTime() time.Time { return parsedTime } } + +func (t *Todo) Complete() { + t.Completed = true + t.CompletedDate = bod(time.Now()).Format(ISO8601_TIMESTAMP_FORMAT) +} + +func (t *Todo) Uncomplete() { + t.Completed = false + t.CompletedDate = "" +}
\ No newline at end of file |
