mirror of
https://github.com/Luchexx/wacrm.git
synced 2026-11-02 09:19:51 +00:00
Complete the public API roadmap on top of the existing key-auth layer (#290). Re-lands POST /api/v1/messages (lost when the stacked #291 never reached main) by extracting the dashboard send route's core into `sendMessageToConversation`, then adds: - Contacts: GET/POST /api/v1/contacts, GET/PATCH /api/v1/contacts/{id} - Conversations: GET list + /{id} + /{id}/messages - Broadcasts: POST /api/v1/broadcasts + GET /{id} (persist rows, fan out in after(), poll for status) All list endpoints share one keyset-pagination contract ({ data, meta: { next_cursor } }). No migration required — scopes and tables already exist. Versioned as 0.3.0 (folded into [Unreleased]); docs/public-api.md updated; outbound webhooks left as the sole roadmap item. API stays v1 (additive). Includes fixes from an adversarial code review: cursor validation against filter injection, broadcast counts deferred to the DB aggregate trigger, terminal broadcast status reflects failures, duplicate-phone de-dup, up-front send-param validation (no orphan conversations), PATCH null-clear semantics, error-checked tag sync, bounded tag filter, unified audit-user attribution, and a maxDuration on the broadcast fan-out. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| broadcasts | ||
| contacts | ||
| conversations | ||
| me | ||
| messages | ||