Skip to content

Create unsubscribe API endpoints #1732

Description

@cka-y

Description:
Implement two public (no auth required) endpoints for email-based unsubscription:

  • GET /v1/subscriptions/{id} — look up a subscription by UUID, return info (type, status)
  • DELETE /v1/subscriptions/{id} — deactivate subscription by UUID

For api.announcements, the DELETE handler must also remove the contact from the Brevo list. Also the api.announcements announcements should not be removed from the subcription, it should set active = false(this is to use the api.announcements as a token for email unsubscribe link).

Acceptance Criteria:

  • GET /v1/subscriptions/{id} returns subscription info given a valid UUID
  • DELETE /v1/subscriptions/{id} deactivates the subscription (sets active = false)
  • Deactivation is idempotent (no-op on already-inactive subscription)
  • For api.announcements, Brevo contact is removed from the list on deactivation
  • UUID v4 provides sufficient security (no auth needed — only action is deactivation)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions