feat(api): add anniversaries ICS feed endpoint - #792
Conversation
7c7e407 to
ae82436
Compare
|
I updated this pr following the modifications on #790 |
ae82436 to
5d10bc5
Compare
|
Updated this PR now that #790 has been merged. I rebuilt the branch on top of current
|
There was a problem hiding this comment.
Pull request overview
Adds a new public ICS (iCalendar) feed endpoint for anniversaries that authenticates via the scoped persistent access-token infrastructure introduced in #790, enabling calendar clients to subscribe to filtered, recurring anniversary events.
Changes:
- Add
GET /api/anniversaries.ics?token=...resource that generates atext/calendarICS payload with yearlyVEVENTs. - Implement query filtering (
event_types,anchor_gramps_id,generation_depth) and scope/disabled checks (user + tree). - Add endpoint tests covering token validity/revocation, filters, anchor scope, and disabled user/tree behavior.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
gramps_webapi/api/resources/anniversaries.py |
Implements the anniversaries ICS endpoint, filtering logic, and ICS serialization. |
gramps_webapi/api/__init__.py |
Registers the new /anniversaries.ics endpoint in the API router. |
tests/test_endpoints/test_anniversaries_ics.py |
Adds test coverage for endpoint access control and core filtering behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
Thanks! The next step is to add the persistent token management UI in the frontend; once we have that, I think this can be merged. |
|
Ok, I'm on it. |
|
Done in gramps-project/gramps-web#1007 |
Summary
Add the public anniversaries ICS endpoint using the persistent scoped token infrastructure merged in #790.
Context
This branch has been rebuilt on current
master, so this PR now only contains the anniversaries ICS endpoint changes.What’s included in this step
GET /api/anniversaries.ics?token=....event_types,anchor_gramps_id,generation_depth.text/calendarICS with yearly recurringVEVENTs.Related