90 lines
No EOL
2.9 KiB
JavaScript
90 lines
No EOL
2.9 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
// Import middleware
|
|
const auth = require('../../../src/middleware/auth');
|
|
const pluginAuth = require('../../../src/middleware/pluginAuth');
|
|
|
|
// Import sub-routers
|
|
const accountsRoutes = require('./accounts');
|
|
const budgetsRoutes = require('./budgets');
|
|
const expensesRoutes = require('./expenses');
|
|
const revenueRoutes = require('./revenue');
|
|
const reportsRoutes = require('./reports');
|
|
const analyticsRoutes = require('./analytics');
|
|
const transactionsRoutes = require('./transactions');
|
|
const taxRoutes = require('./tax');
|
|
const balancesRoutes = require('./balances');
|
|
const invoicesRoutes = require('./invoices');
|
|
const ledgerRoutes = require('./ledger');
|
|
const reconciliationRoutes = require('./reconciliation');
|
|
const assessmentsRoutes = require('./assessments');
|
|
|
|
// Apply common middleware to all plugin routes
|
|
// Standard auth to populate req.user (required for created_by fields)
|
|
router.use(auth.authenticateToken);
|
|
// Lightweight plugin checks (permit-all for now but ensures future extensibility)
|
|
// Note: We intentionally avoid rate-limiting until configured
|
|
router.use(pluginAuth.checkPluginSubscription('financials'));
|
|
|
|
// Health and info endpoints
|
|
router.get('/health', (req, res) => {
|
|
res.json({
|
|
success: true,
|
|
plugin: 'financials',
|
|
version: '1.0.0',
|
|
status: 'healthy',
|
|
timestamp: new Date().toISOString(),
|
|
message: 'Financials plugin is working!'
|
|
});
|
|
});
|
|
|
|
router.get('/info', (req, res) => {
|
|
res.json({
|
|
success: true,
|
|
plugin: {
|
|
name: 'financials',
|
|
displayName: 'Financials Plugin',
|
|
version: '1.0.0',
|
|
description: 'Comprehensive financial management including accounting, budgeting, expense tracking, and financial reporting',
|
|
permissions: [
|
|
'view_financials',
|
|
'manage_accounts',
|
|
'create_budgets',
|
|
'generate_reports',
|
|
'manage_expenses',
|
|
'manage_revenue',
|
|
'view_analytics',
|
|
'manage_tax_settings',
|
|
'approve_transactions'
|
|
],
|
|
features: [
|
|
'Chart of Accounts',
|
|
'Budget Management',
|
|
'Expense Tracking',
|
|
'Revenue Management',
|
|
'Financial Reports',
|
|
'Analytics Dashboard',
|
|
'Transaction Management',
|
|
'Tax Management'
|
|
]
|
|
}
|
|
});
|
|
});
|
|
|
|
// Mount sub-routers
|
|
router.use('/accounts', accountsRoutes);
|
|
router.use('/budgets', budgetsRoutes);
|
|
router.use('/expenses', expensesRoutes);
|
|
router.use('/revenue', revenueRoutes);
|
|
router.use('/reports', reportsRoutes);
|
|
router.use('/analytics', analyticsRoutes);
|
|
router.use('/transactions', transactionsRoutes);
|
|
router.use('/tax', taxRoutes);
|
|
router.use('/balances', balancesRoutes);
|
|
router.use('/invoices', invoicesRoutes);
|
|
router.use('/ledger', ledgerRoutes);
|
|
router.use('/reconciliation', reconciliationRoutes);
|
|
router.use('/assessments', assessmentsRoutes);
|
|
|
|
module.exports = router;
|