All files / src/lib/api-docs/endpoints push.ts

100% Statements 48/48
100% Branches 0/0
100% Functions 0/0
100% Lines 48/48

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 491x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * Push Notifications Endpoints
 * Web push notification subscription management
 */
 
import type { ApiEndpoint } from '@/types/api-docs';
 
export const pushEndpoints: ApiEndpoint[] = [
  {
    id: 'push-subscribe',
    method: 'POST',
    path: '/api/push/subscribe',
    summary: 'Subscribe to push notifications',
    description: 'Registers a device for web push notifications',
    category: 'push',
    requiresAuth: true,
    requestBody: {
      contentType: 'application/json',
      fields: [
        { name: 'subscription', type: 'object', required: true, description: 'PushSubscription object from browser' },
        { name: 'preferences', type: 'object', required: false, description: 'Notification preferences' },
      ],
    },
    responses: [
      { status: 201, description: 'Subscription created' },
      { status: 400, description: 'Invalid subscription data' },
    ],
  },
  {
    id: 'push-unsubscribe',
    method: 'POST',
    path: '/api/push/unsubscribe',
    summary: 'Unsubscribe from push notifications',
    description: 'Removes a device from push notification subscriptions',
    category: 'push',
    requiresAuth: true,
    requestBody: {
      contentType: 'application/json',
      fields: [
        { name: 'endpoint', type: 'string', required: true, description: 'Push subscription endpoint' },
      ],
    },
    responses: [
      { status: 200, description: 'Subscription removed' },
      { status: 404, description: 'Subscription not found' },
    ],
  },
];