summaryrefslogtreecommitdiff
path: root/internal/api/interfaces.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-01-26 20:55:50 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-01-26 20:55:50 -1000
commita3156a2f399ea03c645ee23b0099d9d722ce7e1e (patch)
tree03c813717e77ae27d8aee9e676f1b75a6a01648c /internal/api/interfaces.go
parent70e6e51b6781a3986c51e3496b81c88665286872 (diff)
Add Google Tasks integration (#43)
- New GoogleTasksClient for fetching and managing Google Tasks - Tasks appear in Timeline view with yellow indicator dot - Tap checkbox to complete/uncomplete tasks via Google API - Shares credentials file with Google Calendar (GOOGLE_CREDENTIALS_FILE) - Configure task list via GOOGLE_TASKS_LIST_ID env var (default: @default) - Supports comma-separated list IDs for multiple lists New files: - internal/api/google_tasks.go - Google Tasks API client Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'internal/api/interfaces.go')
-rw-r--r--internal/api/interfaces.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/internal/api/interfaces.go b/internal/api/interfaces.go
index 70bba1f..aa351ab 100644
--- a/internal/api/interfaces.go
+++ b/internal/api/interfaces.go
@@ -42,10 +42,19 @@ type GoogleCalendarAPI interface {
GetEventsByDateRange(ctx context.Context, start, end time.Time) ([]models.CalendarEvent, error)
}
+// GoogleTasksAPI defines the interface for Google Tasks operations
+type GoogleTasksAPI interface {
+ GetTasks(ctx context.Context) ([]models.GoogleTask, error)
+ GetTasksByDateRange(ctx context.Context, start, end time.Time) ([]models.GoogleTask, error)
+ CompleteTask(ctx context.Context, listID, taskID string) error
+ UncompleteTask(ctx context.Context, listID, taskID string) error
+}
+
// Ensure concrete types implement interfaces
var (
_ TodoistAPI = (*TodoistClient)(nil)
_ TrelloAPI = (*TrelloClient)(nil)
_ PlanToEatAPI = (*PlanToEatClient)(nil)
_ GoogleCalendarAPI = (*GoogleCalendarClient)(nil)
+ _ GoogleTasksAPI = (*GoogleTasksClient)(nil)
)