68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { Router } from 'express';
|
|
import { summaryController } from '@controllers/summary.controller';
|
|
import { authenticateToken } from '@middlewares/auth.middleware';
|
|
import { asyncHandler } from '@middlewares/errorHandler.middleware';
|
|
|
|
const router = Router();
|
|
|
|
// All routes require authentication
|
|
router.use(authenticateToken);
|
|
|
|
// Create summary for a closed request
|
|
router.post(
|
|
'/',
|
|
asyncHandler(summaryController.createSummary.bind(summaryController))
|
|
);
|
|
|
|
// List summaries shared with current user (MUST come before /:summaryId)
|
|
router.get(
|
|
'/shared',
|
|
asyncHandler(summaryController.listSharedSummaries.bind(summaryController))
|
|
);
|
|
|
|
// Mark shared summary as viewed (MUST come before /:summaryId)
|
|
router.patch(
|
|
'/shared/:sharedSummaryId/view',
|
|
asyncHandler(summaryController.markAsViewed.bind(summaryController))
|
|
);
|
|
|
|
// List summaries created by current user (MUST come before /:summaryId)
|
|
router.get(
|
|
'/my',
|
|
asyncHandler(summaryController.listMySummaries.bind(summaryController))
|
|
);
|
|
|
|
// Get summary by requestId (MUST come before /:summaryId)
|
|
router.get(
|
|
'/request/:requestId',
|
|
asyncHandler(summaryController.getSummaryByRequestId.bind(summaryController))
|
|
);
|
|
|
|
// Regenerate summary for a request (MUST come before /:summaryId)
|
|
// Access: Initiator or Admin/Management users
|
|
router.post(
|
|
'/request/:requestId/regenerate',
|
|
asyncHandler(summaryController.regenerateSummary.bind(summaryController))
|
|
);
|
|
|
|
// Share summary with users (MUST come before /:summaryId)
|
|
router.post(
|
|
'/:summaryId/share',
|
|
asyncHandler(summaryController.shareSummary.bind(summaryController))
|
|
);
|
|
|
|
// Get shared recipients for a summary (MUST come before /:summaryId)
|
|
router.get(
|
|
'/:summaryId/recipients',
|
|
asyncHandler(summaryController.getSharedRecipients.bind(summaryController))
|
|
);
|
|
|
|
// Get summary details (MUST come last - it's a catch-all for UUIDs)
|
|
router.get(
|
|
'/:summaryId',
|
|
asyncHandler(summaryController.getSummaryDetails.bind(summaryController))
|
|
);
|
|
|
|
export default router;
|
|
|