adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
22 lines • 2.04 kB
JavaScript
import { Router } from 'express';
import { ReviewerController } from '../controllers/ReviewerController.js';
import { validate } from '../middleware/validation.js';
import { requirePermission } from '../middleware/auth.js';
import { createReviewerProfileSchema, updateReviewerProfileSchema, updateAvailabilitySchema, updatePreferencesSchema, reviewerSearchSchema, availableReviewersSchema, leaderboardQuerySchema } from '../validators/reviewSchemas.js';
const router = Router();
// Reviewer Profile Management
router.post('/', requirePermission('admin'), validate({ body: createReviewerProfileSchema }), ReviewerController.createReviewerProfile);
router.get('/', requirePermission('read'), validate({ query: reviewerSearchSchema }), ReviewerController.searchReviewers);
router.get('/available', requirePermission('read'), validate({ query: availableReviewersSchema }), ReviewerController.getAvailableReviewers);
router.get('/leaderboard', requirePermission('read'), validate({ query: leaderboardQuerySchema }), ReviewerController.getReviewerLeaderboard);
router.get('/:userId', requirePermission('read'), ReviewerController.getReviewerProfile);
router.put('/:userId', requirePermission('write'), validate({ body: updateReviewerProfileSchema }), ReviewerController.updateReviewerProfile);
router.delete('/:userId', requirePermission('admin'), ReviewerController.deleteReviewerProfile);
// Reviewer Availability and Preferences
router.patch('/:userId/availability', requirePermission('write'), validate({ body: updateAvailabilitySchema }), ReviewerController.updateReviewerAvailability);
router.patch('/:userId/preferences', requirePermission('write'), validate({ body: updatePreferencesSchema }), ReviewerController.updateReviewerPreferences);
// Reviewer Performance and Metrics
router.get('/:userId/metrics', requirePermission('read'), ReviewerController.getReviewerMetrics);
router.get('/:userId/workload', requirePermission('read'), ReviewerController.getReviewerWorkload);
export default router;
//# sourceMappingURL=reviewers.js.map