All files / src/lib/api-docs/endpoints/dev tickets.ts

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

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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 971x 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 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 1x  
/**
 * Dev Tickets Endpoints
 * Development ticket management endpoints
 */
 
import type { ApiEndpoint } from '@/types/api-docs';
 
export const devTicketsEndpoints: ApiEndpoint[] = [
  {
    id: 'dev-tickets-list',
    method: 'GET',
    path: '/api/dev/tickets',
    summary: 'List dev tickets',
    description: 'Returns paginated list of development tickets',
    category: 'dev-tickets',
    requiresAuth: true,
    adminOnly: true,
    parameters: [
      { name: 'page', type: 'number', required: false, location: 'query', description: 'Page number' },
      { name: 'limit', type: 'number', required: false, location: 'query', description: 'Items per page' },
      { name: 'status', type: 'string', required: false, location: 'query', description: 'Filter by status' },
      { name: 'type', type: 'string', required: false, location: 'query', description: 'Filter by type' },
      { name: 'priority', type: 'string', required: false, location: 'query', description: 'Filter by priority' },
      { name: 'projectId', type: 'string', required: false, location: 'query', description: 'Filter by project' },
    ],
    responses: [
      { status: 200, description: 'List of tickets' },
    ],
  },
  {
    id: 'dev-tickets-create',
    method: 'POST',
    path: '/api/dev/tickets',
    summary: 'Create dev ticket',
    description: 'Creates a new development ticket',
    category: 'dev-tickets',
    requiresAuth: true,
    adminOnly: true,
    requestBody: {
      contentType: 'application/json',
      fields: [
        { name: 'title', type: 'string', required: true, description: 'Ticket title' },
        { name: 'description', type: 'string', required: false, description: 'Ticket description' },
        { name: 'type', type: 'string', required: true, description: 'Ticket type' },
        { name: 'priority', type: 'string', required: true, description: 'Priority level' },
        { name: 'projectId', type: 'string', required: true, description: 'Project ID' },
      ],
    },
    responses: [
      { status: 201, description: 'Ticket created' },
    ],
  },
  {
    id: 'dev-tickets-get',
    method: 'GET',
    path: '/api/dev/tickets/{id}',
    summary: 'Get dev ticket',
    description: 'Returns a single development ticket',
    category: 'dev-tickets',
    requiresAuth: true,
    adminOnly: true,
    parameters: [
      { name: 'id', type: 'string', required: true, location: 'path', description: 'Ticket ID' },
    ],
    responses: [
      { status: 200, description: 'Ticket details' },
      { status: 404, description: 'Ticket not found' },
    ],
  },
  {
    id: 'dev-tickets-update',
    method: 'PUT',
    path: '/api/dev/tickets/{id}',
    summary: 'Update dev ticket',
    description: 'Updates an existing development ticket',
    category: 'dev-tickets',
    requiresAuth: true,
    adminOnly: true,
    parameters: [
      { name: 'id', type: 'string', required: true, location: 'path', description: 'Ticket ID' },
    ],
    requestBody: {
      contentType: 'application/json',
      fields: [
        { name: 'title', type: 'string', required: false, description: 'Ticket title' },
        { name: 'description', type: 'string', required: false, description: 'Ticket description' },
        { name: 'status', type: 'string', required: false, description: 'Ticket status' },
        { name: 'priority', type: 'string', required: false, description: 'Priority level' },
      ],
    },
    responses: [
      { status: 200, description: 'Ticket updated' },
      { status: 404, description: 'Ticket not found' },
    ],
  },
];