"use strict"; var express = require('express'); function apiRoutes(app, middleware, controllers) { // todo, needs to be in api namespace app.get('/users/csv', middleware.authenticate, controllers.admin.users.getCSV); app.post('/category/uploadpicture', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadCategoryPicture); app.post('/uploadfavicon', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadFavicon); app.post('/uploadlogo', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadLogo); app.post('/uploadgravatardefault', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadGravatarDefault); } function adminRouter(middleware, controllers) { var router = express.Router(); router.use(middleware.admin.buildHeader); router.get('/', controllers.admin.home); addRoutes(router, middleware, controllers); apiRoutes(router, middleware, controllers); return router; } function apiRouter(middleware, controllers) { var router = express.Router(); addRoutes(router, middleware, controllers); return router; } function addRoutes(router, middleware, controllers) { //main router.get('/index', controllers.admin.home); router.get('/plugins', controllers.admin.plugins.get); router.get('/appearance/:term?', controllers.admin.appearance.get); router.get('/extend/widgets', controllers.admin.extend.widgets); router.get('/languages', controllers.admin.languages.get); router.get('/groups', controllers.admin.groups.get); router.get('/sounds', controllers.admin.sounds.get); //settings router.get('/settings/:term?', middleware.applyCSRF, controllers.admin.settings.get); //user router.get('/users', controllers.admin.users.search); router.get('/users/search', controllers.admin.users.search); router.get('/users/latest', controllers.admin.users.sortByJoinDate); router.get('/users/sort-posts', controllers.admin.users.sortByPosts); router.get('/users/sort-reputation', controllers.admin.users.sortByReputation); //forum router.get('/categories', middleware.applyCSRF, controllers.admin.categories.active); router.get('/categories/active', middleware.applyCSRF, controllers.admin.categories.active); router.get('/categories/disabled', middleware.applyCSRF, controllers.admin.categories.disabled); router.get('/tags', controllers.admin.tags.get); //misc router.get('/database', controllers.admin.database.get); router.get('/events', controllers.admin.events.get); router.get('/logger', controllers.admin.logger.get); } module.exports = function(app, middleware, controllers) { app.use('/admin/', adminRouter(middleware, controllers)); app.use('/api/admin/', apiRouter(middleware, controllers)); };