Implement contacts API routes #27

Closed
opened 2026-05-19 19:51:45 -05:00 by erik · 3 comments
Owner

Goal

Implement Slugkit contact management routes for authors, people, and organizations referenced by posts and sources.

Spec: docs/specs/04-contacts-routes.md

Requirements

  • Implement all contacts routes and data shapes from the spec.
  • Use contacts terminology; do not expose the older people resource name in the Slugkit API.
  • Support contact fields, optional URL/avatar/description data, and any account summary embedding documented in the spec.
  • Keep account management itself in the accounts routes.
  • Validate URLs and required fields.
  • Use shared auth, validation, not-found, and conflict errors.
  • Document every route in OpenAPI with the operation IDs from the spec.
  • Add tests for list/create/get/update/delete and validation behavior.

Acceptance criteria

  • Can list contacts.
  • Can create a contact.
  • Can get a contact by ID.
  • Can update a contact.
  • Can delete a contact or receive the documented conflict behavior when deletion is blocked.
  • Contact responses may include account summaries/default account as documented.
  • Invalid URLs and missing required fields return shared validation errors.
  • Every contacts route appears in OpenAPI with documented operation IDs.
  • Relevant lint/test checks pass.

Dependencies

  • task-c272cbda
  • task-69937fe4
## Goal Implement Slugkit contact management routes for authors, people, and organizations referenced by posts and sources. Spec: `docs/specs/04-contacts-routes.md` ## Requirements - Implement all contacts routes and data shapes from the spec. - Use `contacts` terminology; do not expose the older `people` resource name in the Slugkit API. - Support contact fields, optional URL/avatar/description data, and any account summary embedding documented in the spec. - Keep account management itself in the accounts routes. - Validate URLs and required fields. - Use shared auth, validation, not-found, and conflict errors. - Document every route in OpenAPI with the operation IDs from the spec. - Add tests for list/create/get/update/delete and validation behavior. ## Acceptance criteria - [ ] Can list contacts. - [ ] Can create a contact. - [ ] Can get a contact by ID. - [ ] Can update a contact. - [ ] Can delete a contact or receive the documented conflict behavior when deletion is blocked. - [ ] Contact responses may include account summaries/default account as documented. - [ ] Invalid URLs and missing required fields return shared validation errors. - [ ] Every contacts route appears in OpenAPI with documented operation IDs. - [ ] Relevant lint/test checks pass. ## Dependencies - task-c272cbda - task-69937fe4
Collaborator

Synced from todu comment by @todu on 2026-05-23T20:08:09.976Z

Review update

  • PR: #68 is open with green CI.
  • Result: approved; no blocking issues or warnings found.
  • Follow-up: waiting for explicit human merge approval.
_Synced from todu comment by @todu on 2026-05-23T20:08:09.976Z_ ### Review update - PR: https://forge.caradoc.com/erik/slugkit/pulls/68 is open with green CI. - Result: approved; no blocking issues or warnings found. - Follow-up: waiting for explicit human merge approval.
caradoc 2026-05-23 15:23:28 -05:00
Collaborator

Synced from todu comment by @todu on 2026-05-23T20:20:30.300Z

Completed

  • Implemented authenticated contacts CRUD API routes and contact service logic.
  • Documented contacts routes and schemas in OpenAPI with contacts.* operation IDs.
  • Added tests for auth, list/create/get/update/delete, validation, missing contacts, delete conflicts, and OpenAPI coverage.
  • Merged PR: #68
  • Verified: ./scripts/pre-pr.sh passed and CI was green before merge.
_Synced from todu comment by @todu on 2026-05-23T20:20:30.300Z_ ### Completed - Implemented authenticated contacts CRUD API routes and contact service logic. - Documented contacts routes and schemas in OpenAPI with `contacts.*` operation IDs. - Added tests for auth, list/create/get/update/delete, validation, missing contacts, delete conflicts, and OpenAPI coverage. - Merged PR: https://forge.caradoc.com/erik/slugkit/pulls/68 - Verified: `./scripts/pre-pr.sh` passed and CI was green before merge.
Collaborator

Synced from todu comment by @todu on 2026-05-23T20:18:28.117Z

Review update

  • PR: #68 was updated with the Makefile CLI fix.
  • Result: approved; CI is green on the latest commit.
  • Follow-up: waiting for explicit human merge approval.
_Synced from todu comment by @todu on 2026-05-23T20:18:28.117Z_ ### Review update - PR: https://forge.caradoc.com/erik/slugkit/pulls/68 was updated with the Makefile CLI fix. - Result: approved; CI is green on the latest commit. - Follow-up: waiting for explicit human merge approval.
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#27
No description provided.