diff --git a/backend/src/index.js b/backend/src/index.js index 46d9fbc..bf7dc28 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -16,6 +16,7 @@ const copyRoutes = require('./routes/copy'); const folderRoutes = require('./routes/folder'); const healthRoutes = require('./routes/health'); const versionRoutes = require('./routes/version'); +const adminRoutes = require('./routes/admin'); const errorHandler = require('./middleware/errorHandler'); const logger = require('./middleware/logger'); @@ -45,6 +46,7 @@ app.use('/api/copy', copyRoutes); app.use('/api/folder', folderRoutes); app.use('/api/health', healthRoutes); app.use('/api/version', versionRoutes); +app.use('/api/admin', adminRoutes); app.use(errorHandler); diff --git a/backend/src/routes/admin.js b/backend/src/routes/admin.js new file mode 100644 index 0000000..b480af7 --- /dev/null +++ b/backend/src/routes/admin.js @@ -0,0 +1,28 @@ +const express = require('express'); +const db = require('../db'); + +const router = express.Router(); + +// Admin: Get all users +router.get('/users', (req, res) => { + db.query('SELECT id, username, email, storage_used, storage_limit, created_at FROM users') + .then(users => res.json({ users })) + .catch(err => res.status(500).json({ error: err.message })); +}); + +// Admin: Get system stats +router.get('/stats', (req, res) => { + Promise.all([ + db.query('SELECT COUNT(*) as count FROM users'), + db.query('SELECT COUNT(*) as count FROM files'), + db.query('SELECT COUNT(*) as count FROM shares') + ]).then(([users, files, shares]) => { + res.json({ + totalUsers: users[0]?.count || 0, + totalFiles: files[0]?.count || 0, + totalShares: shares[0]?.count || 0 + }); + }); +}); + +module.exports = router;