summaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-23 08:59:35 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-23 08:59:35 +0000
commit23c670442392af1c75b935b3296ae2fc4fd094ba (patch)
tree3137ff26aa5ed14ff8acb77007d4bc6ec2fff217 /internal/api
parent92c784dd057d8f110c677516909162c4cd4d00da (diff)
fix: support multiple enabled Google Task lists and Calendars
- Update Google API interfaces with setters for list/calendar IDs - Update fetchCalendarEvents and fetchGoogleTasks to use enabled IDs from source_configs - Update timeline logic tests to reflect interface changes and seed config data - Ensure dashboard respects user-selected lists from settings
Diffstat (limited to 'internal/api')
-rw-r--r--internal/api/google_calendar.go5
-rw-r--r--internal/api/google_tasks.go5
-rw-r--r--internal/api/interfaces.go2
3 files changed, 12 insertions, 0 deletions
diff --git a/internal/api/google_calendar.go b/internal/api/google_calendar.go
index 68d423b..8bb3143 100644
--- a/internal/api/google_calendar.go
+++ b/internal/api/google_calendar.go
@@ -176,6 +176,11 @@ func (c *GoogleCalendarClient) GetEventsByDateRange(ctx context.Context, start,
return deduplicateEvents(allEvents), nil
}
+// SetCalendarIDs updates the calendar IDs used by the client
+func (c *GoogleCalendarClient) SetCalendarIDs(ids []string) {
+ c.calendarIDs = ids
+}
+
// GetCalendarList returns all calendars accessible to the user
func (c *GoogleCalendarClient) GetCalendarList(ctx context.Context) ([]models.CalendarInfo, error) {
list, err := c.srv.CalendarList.List().Do()
diff --git a/internal/api/google_tasks.go b/internal/api/google_tasks.go
index 8a6488e..da3cd3b 100644
--- a/internal/api/google_tasks.go
+++ b/internal/api/google_tasks.go
@@ -175,6 +175,11 @@ func (c *GoogleTasksClient) UncompleteTask(ctx context.Context, listID, taskID s
return nil
}
+// SetTaskListID updates the task list ID(s) used by the client
+func (c *GoogleTasksClient) SetTaskListID(id string) {
+ c.tasklistID = id
+}
+
// GetTaskLists returns all task lists accessible to the user
func (c *GoogleTasksClient) GetTaskLists(ctx context.Context) ([]models.TaskListInfo, error) {
list, err := c.srv.Tasklists.List().Context(ctx).Do()
diff --git a/internal/api/interfaces.go b/internal/api/interfaces.go
index cec64be..99701a1 100644
--- a/internal/api/interfaces.go
+++ b/internal/api/interfaces.go
@@ -39,6 +39,7 @@ type GoogleCalendarAPI interface {
GetUpcomingEvents(ctx context.Context, maxResults int) ([]models.CalendarEvent, error)
GetEventsByDateRange(ctx context.Context, start, end time.Time) ([]models.CalendarEvent, error)
GetCalendarList(ctx context.Context) ([]models.CalendarInfo, error)
+ SetCalendarIDs(ids []string)
}
// GoogleTasksAPI defines the interface for Google Tasks operations
@@ -48,6 +49,7 @@ type GoogleTasksAPI interface {
CompleteTask(ctx context.Context, listID, taskID string) error
UncompleteTask(ctx context.Context, listID, taskID string) error
GetTaskLists(ctx context.Context) ([]models.TaskListInfo, error)
+ SetTaskListID(id string)
}
// Ensure concrete types implement interfaces