diff --git a/frontend/src/routes/admin.js b/frontend/src/routes/admin.js index dcee70d..5a5c41e 100644 --- a/frontend/src/routes/admin.js +++ b/frontend/src/routes/admin.js @@ -1346,7 +1346,7 @@ const handleGlobalSettings = async (req, res) => { router.get(['/settings', '/global-config', '/config'], handleGlobalSettings); // Endpoint específico para alternar modo demo y cuentas default -router.post(['/settings/demo-mode', '/demo-mode'], async (req, res) => { +router.post('/settings/demo-mode', async (req, res) => { try { const resp = await req.apiClient.post('/settings/demo-mode', req.body); return res.status(resp.status || 200).json(resp.data); @@ -1359,24 +1359,33 @@ router.post(['/settings/demo-mode', '/demo-mode'], async (req, res) => { } }); -// Proxy para cualquier subruta de configuración (smtp, google-oauth, moodle, etc.) -router.all('/settings/*', async (req, res) => { +// Función forwarder para acciones de configuración hacia Flask +const forwardSettingsAction = async (req, res) => { try { - const subPath = req.params[0]; + const relativeUrl = req.originalUrl.replace(/^\/admin/, ''); const resp = await req.apiClient({ method: req.method, - url: `/settings/${subPath}`, + url: relativeUrl, data: req.body, params: req.query }); return res.status(resp.status).json(resp.data); } catch (err) { - console.error(`Error in /admin/settings/${req.params[0]}:`, err.response?.data || err.message); + console.error(`Error in settings proxy (${req.method} ${req.originalUrl}):`, err.response?.data || err.message); return res.status(err.response?.status || 500).json(err.response?.data || { status: 'error', message: err.response?.data?.message || err.message }); } -}); +}; + +router.post('/settings/smtp', forwardSettingsAction); +router.post('/settings/smtp/test', forwardSettingsAction); +router.post('/settings/auth-providers', forwardSettingsAction); +router.post('/settings/google-oauth', forwardSettingsAction); +router.post('/settings/moodle', forwardSettingsAction); +router.post('/settings/moodle/test', forwardSettingsAction); +router.post('/settings/moodle/sync', forwardSettingsAction); +router.get('/settings/moodle/stats', forwardSettingsAction); module.exports = router;