Implement followers API route #21

Closed
opened 2026-05-19 19:51:44 -05:00 by erik · 2 comments
Owner

Goal

Implement the Slugkit followers API route for listing audience/follower records without coupling API vocabulary to a specific social protocol.

Spec: docs/specs/08-followers-routes.md

Requirements

  • Implement GET /api/v1/followers with the response shape from the spec.
  • Back the route with follower data stored by the template social/protocol implementation.
  • Use generic follower fields such as profile URL, display name, handle, inbox URL, and followed timestamp.
  • Return data: [] when no followers exist.
  • Return the standardized 501 Not Implemented response if the implementation intentionally disables follower support.
  • Use shared auth and error behavior.
  • Document the route in OpenAPI with operation ID followers.list.
  • Add tests for empty list, populated list, auth, optional not-implemented behavior, and OpenAPI coverage.

Acceptance criteria

  • Can list followers.
  • Empty follower list returns data: [].
  • Follower records use the documented response shape.
  • Unsupported implementations return standardized 501 Not Implemented.
  • Route appears in OpenAPI with operation ID followers.list.
  • Relevant lint/test checks pass.

Dependencies

  • task-c272cbda
  • task-4efe743e
## Goal Implement the Slugkit followers API route for listing audience/follower records without coupling API vocabulary to a specific social protocol. Spec: `docs/specs/08-followers-routes.md` ## Requirements - Implement `GET /api/v1/followers` with the response shape from the spec. - Back the route with follower data stored by the template social/protocol implementation. - Use generic follower fields such as profile URL, display name, handle, inbox URL, and followed timestamp. - Return `data: []` when no followers exist. - Return the standardized `501 Not Implemented` response if the implementation intentionally disables follower support. - Use shared auth and error behavior. - Document the route in OpenAPI with operation ID `followers.list`. - Add tests for empty list, populated list, auth, optional not-implemented behavior, and OpenAPI coverage. ## Acceptance criteria - [ ] Can list followers. - [ ] Empty follower list returns `data: []`. - [ ] Follower records use the documented response shape. - [ ] Unsupported implementations return standardized `501 Not Implemented`. - [ ] Route appears in OpenAPI with operation ID `followers.list`. - [ ] Relevant lint/test checks pass. ## Dependencies - task-c272cbda - task-4efe743e
Collaborator

Synced from todu comment by @todu on 2026-05-31T03:02:56.931Z

Review update

  • PR: #75
  • Result: approved
  • Verification: make check, ./scripts/pre-pr.sh, and Forgejo CI CI / build-lint-test (pull_request) passed.
  • Acceptance criteria: 6/6 met.
  • Follow-up: waiting for explicit human merge approval.
_Synced from todu comment by @todu on 2026-05-31T03:02:56.931Z_ ### Review update - PR: https://forge.caradoc.com/erik/slugkit/pulls/75 - Result: approved - Verification: `make check`, `./scripts/pre-pr.sh`, and Forgejo CI `CI / build-lint-test (pull_request)` passed. - Acceptance criteria: 6/6 met. - Follow-up: waiting for explicit human merge approval.
caradoc 2026-05-30 22:50:23 -05:00
Collaborator

Synced from todu comment by @todu on 2026-05-31T03:48:41.930Z

Completed

  • Implemented authenticated GET /api/v1/followers.
  • Added follower persistence with protocol-neutral fields: profileUrl, displayName, handle, inboxUrl, and followedAt.
  • Empty follower storage returns data: [].
  • Missing follower storage returns standardized 501 Not Implemented for unsupported implementations.
  • Added OpenAPI route coverage with operation ID followers.list and follower response schemas.
  • Added tests for auth, empty list, populated shape, not-implemented behavior, OpenAPI coverage, and migration coverage.
  • Verified with make check, ./scripts/pre-pr.sh, and passing Forgejo CI.
  • Merged PR #75 into main.
_Synced from todu comment by @todu on 2026-05-31T03:48:41.930Z_ ### Completed - Implemented authenticated `GET /api/v1/followers`. - Added follower persistence with protocol-neutral fields: `profileUrl`, `displayName`, `handle`, `inboxUrl`, and `followedAt`. - Empty follower storage returns `data: []`. - Missing follower storage returns standardized `501 Not Implemented` for unsupported implementations. - Added OpenAPI route coverage with operation ID `followers.list` and follower response schemas. - Added tests for auth, empty list, populated shape, not-implemented behavior, OpenAPI coverage, and migration coverage. - Verified with `make check`, `./scripts/pre-pr.sh`, and passing Forgejo CI. - Merged PR #75 into `main`.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/slugkit#21
No description provided.