diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-12 11:12:55 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-12 11:12:55 +0000 |
| commit | 6fdd09bfe030ce91ee188f18c198fd6a57c7b42f (patch) | |
| tree | b358dcd34aee62de8bcefafdffa2049d57f900df /internal/handlers/widget.go | |
| parent | f31b4722243b8b69564c94e47e07678153c31815 (diff) | |
feat(widget): add recurrence lookup endpoint (GET /api/widget/recurrence)
Diffstat (limited to 'internal/handlers/widget.go')
| -rw-r--r-- | internal/handlers/widget.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/handlers/widget.go b/internal/handlers/widget.go index 29124fb..6b1e774 100644 --- a/internal/handlers/widget.go +++ b/internal/handlers/widget.go @@ -195,6 +195,28 @@ func (h *Handler) HandleWidgetComplete(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } +// HandleWidgetRecurrence looks up and formats a recurring calendar event's schedule. +func (h *Handler) HandleWidgetRecurrence(w http.ResponseWriter, r *http.Request) { + recurringEventID := r.URL.Query().Get("recurring_event_id") + if recurringEventID == "" { + http.Error(w, "recurring_event_id is required", http.StatusBadRequest) + return + } + + recurrence, err := h.googleCalendarClient.GetRecurrenceRule(r.Context(), recurringEventID) + if err != nil { + http.Error(w, "recurring event not found", http.StatusNotFound) + return + } + + resp := struct { + Recurrence string `json:"recurrence"` + }{Recurrence: recurrence} + + w.Header().Set("Content-Type", "application/json") + _ = json.NewEncoder(w).Encode(resp) +} + // HandleWidgetAdd creates a new undated native task from the widget's quick-add sheet. func (h *Handler) HandleWidgetAdd(w http.ResponseWriter, r *http.Request) { var req widgetAddRequest |
