From 8b64e65095002f323c781dc8c432f2620879fd94 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 22 Sep 2014 15:43:41 -0400 Subject: [PATCH] cleaned up admin routes --- src/routes/admin.js | 110 +++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 62 deletions(-) diff --git a/src/routes/admin.js b/src/routes/admin.js index 04c6169489..b64208a3ba 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -1,83 +1,69 @@ "use strict"; +var express = require('express'); -function mainRoutes(app, middleware, controllers) { - app.get('/admin', middleware.admin.buildHeader, controllers.admin.home); - app.get('/admin/index', middleware.admin.buildHeader, controllers.admin.home); - app.get('/api/admin/index', controllers.admin.home); - app.get('/admin/plugins', middleware.admin.buildHeader, controllers.admin.plugins.get); - app.get('/api/admin/plugins', controllers.admin.plugins.get); - - app.get('/admin/settings', middleware.applyCSRF, middleware.admin.buildHeader, controllers.admin.settings.get); - app.get('/api/admin/settings', middleware.applyCSRF, controllers.admin.settings.get); - - app.get('/admin/themes', middleware.admin.buildHeader, controllers.admin.themes.get); - app.get('/api/admin/themes', controllers.admin.themes.get); - - app.get('/admin/languages', middleware.admin.buildHeader, controllers.admin.languages.get); - app.get('/api/admin/languages', controllers.admin.languages.get); - - app.get('/admin/groups', middleware.admin.buildHeader, controllers.admin.groups.get); - app.get('/api/admin/groups', controllers.admin.groups.get); +function apiRoutes(app, middleware, controllers) { + // todo, needs to be in api namespace + app.get('/users/csv', middleware.authenticate, controllers.admin.users.getCSV); - app.get('/admin/sounds', middleware.admin.buildHeader, controllers.admin.sounds.get); - app.get('/api/admin/sounds', controllers.admin.sounds.get); + 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 userRoutes(app, middleware, controllers) { - app.get('/admin/users/search', middleware.admin.buildHeader, controllers.admin.users.search); - app.get('/api/admin/users/search', controllers.admin.users.search); - - app.get('/admin/users/latest', middleware.admin.buildHeader, controllers.admin.users.sortByJoinDate); - app.get('/api/admin/users/latest', controllers.admin.users.sortByJoinDate); +function adminRouter(middleware, controllers) { + var router = express.Router(); - app.get('/admin/users/sort-posts', middleware.admin.buildHeader, controllers.admin.users.sortByPosts); - app.get('/api/admin/users/sort-posts', controllers.admin.users.sortByPosts); + router.use(middleware.admin.buildHeader); - app.get('/admin/users/sort-reputation', middleware.admin.buildHeader, controllers.admin.users.sortByReputation); - app.get('/api/admin/users/sort-reputation', controllers.admin.users.sortByReputation); + router.get('/', controllers.admin.home); - app.get('/admin/users', middleware.admin.buildHeader, controllers.admin.users.search); - app.get('/api/admin/users', controllers.admin.users.search); -} - -function forumRoutes(app, middleware, controllers) { - app.get('/admin/categories/active', middleware.applyCSRF, middleware.admin.buildHeader, controllers.admin.categories.active); - app.get('/api/admin/categories/active', middleware.applyCSRF, controllers.admin.categories.active); + addRoutes(router, middleware, controllers); - app.get('/admin/categories/disabled', middleware.applyCSRF, middleware.admin.buildHeader, controllers.admin.categories.disabled); - app.get('/api/admin/categories/disabled', middleware.applyCSRF, controllers.admin.categories.disabled); + apiRoutes(router, middleware, controllers); - app.get('/admin/tags', middleware.admin.buildHeader, controllers.admin.tags.get); - app.get('/api/admin/tags', controllers.admin.tags.get); + return router; } -function apiRoutes(app, middleware, controllers) { - // todo, needs to be in api namespace - app.get('/admin/users/csv', middleware.authenticate, controllers.admin.users.getCSV); +function apiRouter(middleware, controllers) { + var router = express.Router(); - app.post('/admin/category/uploadpicture', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadCategoryPicture); - app.post('/admin/uploadfavicon', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadFavicon); - app.post('/admin/uploadlogo', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadLogo); - app.post('/admin/uploadgravatardefault', middleware.applyCSRF, middleware.authenticate, controllers.admin.uploads.uploadGravatarDefault); -} - -function miscRoutes(app, middleware, controllers) { - app.get('/admin/database', middleware.admin.buildHeader, controllers.admin.database.get); - app.get('/api/admin/database', controllers.admin.database.get); + addRoutes(router, middleware, controllers); - app.get('/admin/events', middleware.admin.buildHeader, controllers.admin.events.get); - app.get('/api/admin/events', controllers.admin.events.get); + return router; +} - app.get('/admin/logger', middleware.admin.buildHeader, controllers.admin.logger.get); - app.get('/api/admin/logger', controllers.admin.logger.get); +function addRoutes(router, middleware, controllers) { + //main + router.get('/index', controllers.admin.home); + router.get('/plugins', controllers.admin.plugins.get); + router.get('/settings', middleware.applyCSRF, controllers.admin.settings.get); + router.get('/themes', controllers.admin.themes.get); + router.get('/languages', controllers.admin.languages.get); + router.get('/groups', controllers.admin.groups.get); + router.get('/sounds', controllers.admin.sounds.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/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) { - mainRoutes(app, middleware, controllers); - userRoutes(app, middleware, controllers); - forumRoutes(app, middleware, controllers); - apiRoutes(app, middleware, controllers); - miscRoutes(app, middleware, controllers); + app.use('/admin/', adminRouter(middleware, controllers)); + app.use('/api/admin/', apiRouter(middleware, controllers)); };