plugin-communication/routes/index.js
2025-11-03 13:59:30 +02:00

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;