plugin-voting/routes/index.js
2025-11-03 14:01:07 +02:00

58 lines
1.4 KiB
JavaScript

const express = require('express');
const router = express.Router();
const auth = require('../../../src/middleware/auth');
const {
checkPluginPermission,
checkPluginSubscription,
scopeToSite,
pluginRateLimit
} = require('../../../src/middleware/pluginAuth');
// Import plugin-specific route modules
const campaignsRoutes = require('./campaigns');
const formsRoutes = require('./forms');
const responsesRoutes = require('./responses');
const groupsRoutes = require('./groups');
// Mount plugin-specific routes
router.use('/campaigns', campaignsRoutes);
router.use('/forms', formsRoutes);
router.use('/responses', responsesRoutes);
router.use('/groups', groupsRoutes);
// Plugin health check endpoint
router.get('/health', (req, res) => {
res.json({
success: true,
plugin: 'voting',
version: '1.0.0',
status: 'healthy',
timestamp: new Date().toISOString()
});
});
// Plugin info endpoint
router.get('/info', (req, res) => {
res.json({
success: true,
plugin: {
name: 'voting',
displayName: 'Voting Plugin',
version: '1.0.0',
description: 'Comprehensive voting system for HOA board elections, decision-making, and community surveys',
permissions: [
'view_campaigns',
'create_campaigns',
'edit_campaigns',
'delete_campaigns',
'view_results',
'manage_forms',
'export_data',
'view_analytics'
]
}
});
});
module.exports = router;