60 lines
No EOL
1.6 KiB
JavaScript
60 lines
No EOL
1.6 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 messagesRoutes = require('./messages');
|
|
const notificationsRoutes = require('./notifications');
|
|
const templatesRoutes = require('./templates');
|
|
const analyticsRoutes = require('./analytics');
|
|
|
|
// TEMPORARILY REMOVE AUTHENTICATION FOR TESTING
|
|
// router.use(auth.authenticateToken);
|
|
// router.use(scopeToSite);
|
|
// router.use(checkPluginSubscription('communication'));
|
|
// router.use(pluginRateLimit(200, 15 * 60 * 1000)); // 200 requests per 15 minutes
|
|
|
|
// Mount plugin-specific routes
|
|
router.use('/messages', messagesRoutes);
|
|
router.use('/notifications', notificationsRoutes);
|
|
router.use('/templates', templatesRoutes);
|
|
router.use('/analytics', analyticsRoutes);
|
|
|
|
// Plugin health check endpoint
|
|
router.get('/health', (req, res) => {
|
|
res.json({
|
|
success: true,
|
|
plugin: 'communication',
|
|
version: '1.0.0',
|
|
status: 'healthy',
|
|
timestamp: new Date().toISOString()
|
|
});
|
|
});
|
|
|
|
// Plugin info endpoint
|
|
router.get('/info', (req, res) => {
|
|
res.json({
|
|
success: true,
|
|
plugin: {
|
|
name: 'communication',
|
|
displayName: 'Communication Plugin',
|
|
version: '1.0.0',
|
|
description: 'Advanced communication features for HOA management',
|
|
permissions: [
|
|
'read_messages',
|
|
'send_messages',
|
|
'manage_templates',
|
|
'schedule_messages',
|
|
'view_analytics'
|
|
]
|
|
}
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|