diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-01-20 10:40:29 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-01-20 10:40:29 -1000 |
| commit | 6a59098c3096f5ebd3a61ef5268cbd480b0f1519 (patch) | |
| tree | 2192861ed6db801c030be9b67f05796c85bad20c /internal/api/trello.go | |
| parent | 59227d33d6e7c01fbb1ebf96ea616c5f296df7b1 (diff) | |
Implement efficient sync for Todoist and Trello APIs
- Add Todoist Sync API v9 support with incremental sync tokens
- Store sync tokens in SQLite for persistence across restarts
- Add field filtering to Trello API calls to reduce payload size
- Update handlers to use incremental sync (merge changes vs full replace)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'internal/api/trello.go')
| -rw-r--r-- | internal/api/trello.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/internal/api/trello.go b/internal/api/trello.go index 91d6d66..037c881 100644 --- a/internal/api/trello.go +++ b/internal/api/trello.go @@ -68,6 +68,7 @@ func (c *TrelloClient) GetBoards(ctx context.Context) ([]models.Board, error) { params.Set("key", c.apiKey) params.Set("token", c.token) params.Set("filter", "open") + params.Set("fields", "id,name") // Only fetch required fields reqURL := fmt.Sprintf("%s/members/me/boards?%s", c.baseURL, params.Encode()) req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil) @@ -111,6 +112,7 @@ func (c *TrelloClient) GetCards(ctx context.Context, boardID string) ([]models.C params.Set("key", c.apiKey) params.Set("token", c.token) params.Set("filter", "visible") + params.Set("fields", "id,name,idList,due,url,idBoard") // Only fetch required fields reqURL := fmt.Sprintf("%s/boards/%s/cards?%s", c.baseURL, boardID, params.Encode()) req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil) @@ -174,6 +176,7 @@ func (c *TrelloClient) getLists(ctx context.Context, boardID string) ([]models.L params := url.Values{} params.Set("key", c.apiKey) params.Set("token", c.token) + params.Set("fields", "id,name") // Only fetch required fields reqURL := fmt.Sprintf("%s/boards/%s/lists?%s", c.baseURL, boardID, params.Encode()) req, err := http.NewRequestWithContext(ctx, "GET", reqURL, nil) |
