diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-01-25 11:56:29 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-01-25 11:56:29 -1000 |
| commit | ec8a9c0ea46dec7d26caa763e3adefcaf3fc7552 (patch) | |
| tree | 1f91bbc7ec87314189a441c53b7c3b25f1817db0 /internal/api/todoist.go | |
| parent | 83beddfab9584ae4b64a782c978236472b6d5745 (diff) | |
Fix bugs and add bug management scripts
Bug fixes:
- #36: Hide recurring tasks until due day (add IsRecurring to Task/Atom)
- Trello cards missing: change filter=visible to filter=open
- Build fix: add missing fmt import in atom.go
Infrastructure:
- Add scripts/bugs and scripts/resolve-bug for DB bug tracking
- Remove issues/ directory (bugs now tracked in DB)
- Add timeline_logic_test.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'internal/api/todoist.go')
| -rw-r--r-- | internal/api/todoist.go | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/internal/api/todoist.go b/internal/api/todoist.go index 6c998cf..2c94e08 100644 --- a/internal/api/todoist.go +++ b/internal/api/todoist.go @@ -41,11 +41,8 @@ type todoistTaskResponse struct { ProjectID string `json:"project_id"` Priority int `json:"priority"` Labels []string `json:"labels"` - Due *struct { - Date string `json:"date"` - Datetime string `json:"datetime"` - } `json:"due"` - URL string `json:"url"` + Due *dueInfo `json:"due"` + URL string `json:"url"` CreatedAt string `json:"created_at"` } @@ -73,11 +70,8 @@ type SyncItemResponse struct { ProjectID string `json:"project_id"` Priority int `json:"priority"` Labels []string `json:"labels"` - Due *struct { - Date string `json:"date"` - Datetime string `json:"datetime"` - } `json:"due"` - IsCompleted bool `json:"is_completed"` + Due *dueInfo `json:"due"` + IsCompleted bool `json:"is_completed"` IsDeleted bool `json:"is_deleted"` AddedAt string `json:"added_at"` } @@ -125,6 +119,9 @@ func (c *TodoistClient) GetTasks(ctx context.Context) ([]models.Task, error) { } task.DueDate = parseDueDate(apiTask.Due) + if apiTask.Due != nil { + task.IsRecurring = apiTask.Due.IsRecurring + } tasks = append(tasks, task) } @@ -276,10 +273,14 @@ func (c *TodoistClient) ReopenTask(ctx context.Context, taskID string) error { } // parseDueDate parses due date from API response -func parseDueDate(due *struct { - Date string `json:"date"` - Datetime string `json:"datetime"` -}) *time.Time { +// dueInfo represents the due date structure from Todoist API +type dueInfo struct { + Date string `json:"date"` + Datetime string `json:"datetime"` + IsRecurring bool `json:"is_recurring"` +} + +func parseDueDate(due *dueInfo) *time.Time { if due == nil { return nil } |
