diff --git a/src/routes/api.js b/src/routes/api.js index 2ac922308a..d80adc47ec 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -3,27 +3,28 @@ const express = require('express'); const uploadsController = require('../controllers/uploads'); +const helpers = require('./helpers'); module.exports = function (app, middleware, controllers) { const router = express.Router(); app.use('/api', router); - router.get('/config', middleware.applyCSRF, middleware.authenticateRequest, controllers.api.getConfig); + router.get('/config', middleware.applyCSRF, middleware.authenticateRequest, helpers.tryRoute(controllers.api.getConfig)); - router.get('/self', controllers.user.getCurrentUser); - router.get('/user/uid/:uid', middleware.canViewUsers, controllers.user.getUserByUID); - router.get('/user/username/:username', middleware.canViewUsers, controllers.user.getUserByUsername); - router.get('/user/email/:email', middleware.canViewUsers, controllers.user.getUserByEmail); + router.get('/self', helpers.tryRoute(controllers.user.getCurrentUser)); + router.get('/user/uid/:uid', middleware.canViewUsers, helpers.tryRoute(controllers.user.getUserByUID)); + router.get('/user/username/:username', middleware.canViewUsers, helpers.tryRoute(controllers.user.getUserByUsername)); + router.get('/user/email/:email', middleware.canViewUsers, helpers.tryRoute(controllers.user.getUserByEmail)); - router.get('/user/uid/:userslug/export/posts', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportPosts); - router.get('/user/uid/:userslug/export/uploads', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportUploads); - router.get('/user/uid/:userslug/export/profile', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportProfile); + router.get('/user/uid/:userslug/export/posts', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, helpers.tryRoute(controllers.user.exportPosts)); + router.get('/user/uid/:userslug/export/uploads', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, helpers.tryRoute(controllers.user.exportUploads)); + router.get('/user/uid/:userslug/export/profile', middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.checkAccountPermissions, middleware.exposeUid, helpers.tryRoute(controllers.user.exportProfile)); - router.get('/categories/:cid/moderators', controllers.api.getModerators); - router.get('/recent/posts/:term?', controllers.posts.getRecentPosts); - router.get('/unread/total', middleware.authenticateRequest, middleware.ensureLoggedIn, controllers.unread.unreadTotal); - router.get('/topic/teaser/:topic_id', controllers.topics.teaser); - router.get('/topic/pagination/:topic_id', controllers.topics.pagination); + router.get('/categories/:cid/moderators', helpers.tryRoute(controllers.api.getModerators)); + router.get('/recent/posts/:term?', helpers.tryRoute(controllers.posts.getRecentPosts)); + router.get('/unread/total', middleware.authenticateRequest, middleware.ensureLoggedIn, helpers.tryRoute(controllers.unread.unreadTotal)); + router.get('/topic/teaser/:topic_id', helpers.tryRoute(controllers.topics.teaser)); + router.get('/topic/pagination/:topic_id', helpers.tryRoute(controllers.topics.pagination)); const multipart = require('connect-multiparty'); const multipartMiddleware = multipart(); @@ -35,6 +36,14 @@ module.exports = function (app, middleware, controllers) { middleware.applyCSRF, ]; - router.post('/post/upload', middlewares, uploadsController.uploadPost); - router.post('/user/:userslug/uploadpicture', middlewares.concat([middleware.exposeUid, middleware.authenticateRequest, middleware.ensureLoggedIn, middleware.canViewUsers, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadPicture); + router.post('/post/upload', middlewares, helpers.tryRoute(uploadsController.uploadPost)); + router.post('/user/:userslug/uploadpicture', + middlewares.concat([ + middleware.exposeUid, + middleware.authenticateRequest, + middleware.ensureLoggedIn, + middleware.canViewUsers, + middleware.checkAccountPermissions, + ]), + helpers.tryRoute(controllers.accounts.edit.uploadPicture)); };