2017-02-18 01:56:23 -07:00
|
|
|
'use strict';
|
2014-03-03 00:12:25 -05:00
|
|
|
|
2016-07-12 19:58:59 +03:00
|
|
|
var express = require('express');
|
2013-11-30 13:35:42 -05:00
|
|
|
|
2016-07-12 19:58:59 +03:00
|
|
|
var uploadsController = require('../controllers/uploads');
|
2014-02-10 14:15:54 -05:00
|
|
|
|
2017-02-18 01:52:56 -07:00
|
|
|
module.exports = function (app, middleware, controllers) {
|
2015-01-10 16:40:54 -05:00
|
|
|
var router = express.Router();
|
|
|
|
|
app.use('/api', router);
|
2014-03-11 22:31:09 -04:00
|
|
|
|
2020-10-06 09:32:05 -04:00
|
|
|
router.get('/config', middleware.applyCSRF, middleware.authenticateOrGuest, controllers.api.getConfig);
|
2014-03-11 22:31:09 -04:00
|
|
|
|
2020-09-21 11:11:56 -04:00
|
|
|
router.get('/self', controllers.user.getCurrentUser);
|
2019-02-05 12:08:18 -05:00
|
|
|
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);
|
2015-12-06 09:16:20 -06:00
|
|
|
|
2018-05-26 12:49:29 -04:00
|
|
|
router.get('/user/uid/:userslug/export/posts', middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportPosts);
|
|
|
|
|
router.get('/user/uid/:userslug/export/uploads', middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportUploads);
|
|
|
|
|
router.get('/user/uid/:userslug/export/profile', middleware.checkAccountPermissions, middleware.exposeUid, controllers.user.exportProfile);
|
2018-04-10 15:59:24 -04:00
|
|
|
|
2018-12-07 13:31:31 -05:00
|
|
|
router.get('/:type/pid/:id', middleware.authenticateOrGuest, controllers.api.getObject);
|
|
|
|
|
router.get('/:type/tid/:id', middleware.authenticateOrGuest, controllers.api.getObject);
|
|
|
|
|
router.get('/:type/cid/:id', middleware.authenticateOrGuest, controllers.api.getObject);
|
2015-09-20 16:06:17 -04:00
|
|
|
|
2015-09-25 13:11:11 -04:00
|
|
|
router.get('/categories/:cid/moderators', controllers.api.getModerators);
|
2017-03-02 16:11:11 +03:00
|
|
|
router.get('/recent/posts/:term?', controllers.posts.getRecentPosts);
|
2018-06-18 14:37:32 -04:00
|
|
|
router.get('/unread/total', middleware.authenticate, controllers.unread.unreadTotal);
|
2015-10-08 19:51:05 -04:00
|
|
|
router.get('/topic/teaser/:topic_id', controllers.topics.teaser);
|
2016-05-09 23:39:00 +03:00
|
|
|
router.get('/topic/pagination/:topic_id', controllers.topics.pagination);
|
2014-03-11 22:31:09 -04:00
|
|
|
|
2015-01-10 16:40:54 -05:00
|
|
|
var multipart = require('connect-multiparty');
|
|
|
|
|
var multipartMiddleware = multipart();
|
2017-02-03 19:02:38 +03:00
|
|
|
var middlewares = [middleware.maintenanceMode, multipartMiddleware, middleware.validateFiles, middleware.applyCSRF];
|
2015-01-10 18:59:24 -05:00
|
|
|
router.post('/post/upload', middlewares, uploadsController.uploadPost);
|
2020-06-24 23:04:24 -04:00
|
|
|
|
|
|
|
|
router.post('/user/:userslug/uploadpicture', middlewares.concat([middleware.exposeUid, middleware.authenticate, middleware.canViewUsers, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadPicture);
|
2015-01-10 16:40:54 -05:00
|
|
|
};
|