mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +01:00 
			
		
		
		
	api/post/pid route
This commit is contained in:
		| @@ -16,6 +16,7 @@ var async = require('async'), | ||||
| 	helpers = require('./helpers'); | ||||
|  | ||||
| var Controllers = { | ||||
| 	posts: require('./posts'), | ||||
| 	topics: require('./topics'), | ||||
| 	categories: require('./categories'), | ||||
| 	tags: require('./tags'), | ||||
|   | ||||
							
								
								
									
										36
									
								
								src/controllers/posts.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/controllers/posts.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| "use strict"; | ||||
|  | ||||
| var async = require('async'), | ||||
| 	 | ||||
| 	posts = require('../posts'), | ||||
| 	privileges = require('../privileges'), | ||||
| 	helpers = require('./helpers'), | ||||
| 	postsController = {}; | ||||
|  | ||||
| postsController.getPost = function(req, res, next) { | ||||
| 	var uid = req.user ? parseInt(req.user.uid) : 0; | ||||
| 	async.parallel({ | ||||
| 		canRead: function(next) { | ||||
| 			privileges.posts.can('read', req.params.pid, uid, next); | ||||
| 		}, | ||||
| 		postData: function(next) { | ||||
| 			posts.getPostData(req.params.pid, next); | ||||
| 		} | ||||
| 	}, function(err, results) { | ||||
| 		if (err) { | ||||
| 			return next(err); | ||||
| 		} | ||||
| 		if (!results.postData) { | ||||
| 			return helpers.notFound(req, res); | ||||
| 		} | ||||
| 		if (!results.canRead) { | ||||
| 			return helpers.notAllowed(req, res); | ||||
| 		} | ||||
|  | ||||
| 		res.json(results.postData); | ||||
| 	}); | ||||
| }; | ||||
|  | ||||
|  | ||||
|  | ||||
| module.exports = postsController; | ||||
| @@ -13,10 +13,7 @@ module.exports = function(Posts) { | ||||
| 			}, | ||||
| 			function(tid, next) { | ||||
| 				topics.getTopicField(tid, 'cid', next); | ||||
| 			}, | ||||
| 			function(cid, next) { | ||||
| 				next(!cid ? new Error('[[error:invalid-cid]]') : null, cid); | ||||
| 			} | ||||
| 			}			 | ||||
| 		], callback); | ||||
| 	}; | ||||
|  | ||||
|   | ||||
| @@ -46,6 +46,9 @@ module.exports = function(privileges) { | ||||
| 	}; | ||||
|  | ||||
| 	privileges.categories.can = function(privilege, cid, uid, callback) { | ||||
| 		if (!cid) { | ||||
| 			return callback(null, false); | ||||
| 		} | ||||
| 		categories.getCategoryField(cid, 'disabled', function(err, disabled) { | ||||
| 			if (err) { | ||||
| 				return callback(err); | ||||
|   | ||||
| @@ -153,9 +153,10 @@ module.exports = function(privileges) { | ||||
| 		helpers.some([ | ||||
| 			function(next) { | ||||
| 				posts.getCidByPid(pid, function(err, cid) { | ||||
| 					if (err) { | ||||
| 						return next(err); | ||||
| 					if (err || !cid) { | ||||
| 						return next(err, false); | ||||
| 					} | ||||
| 					 | ||||
| 					user.isModerator(uid, cid, next); | ||||
| 				}); | ||||
| 			}, | ||||
|   | ||||
| @@ -16,6 +16,7 @@ module.exports =  function(app, middleware, controllers) { | ||||
| 	router.get('/widgets/render', controllers.api.renderWidgets); | ||||
|  | ||||
| 	router.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.accounts.getUserByUID); | ||||
| 	router.get('/post/:pid', controllers.posts.getPost); | ||||
| 	router.get('/get_templates_listing', templatesController.getTemplatesListing); | ||||
| 	router.get('/categories/:cid/moderators', getModerators); | ||||
| 	router.get('/recent/posts/:term?', getRecentPosts); | ||||
|   | ||||
| @@ -41,6 +41,10 @@ module.exports = function(Topics) { | ||||
| 				posts.getCidByPid(mainPid, callback); | ||||
| 			} | ||||
| 		}, function(err, results) { | ||||
| 			if (err) { | ||||
| 				return callback(err); | ||||
| 			} | ||||
| 			 | ||||
| 			Topics.create({uid: results.postData.uid, title: title, cid: results.cid}, function(err, tid) { | ||||
| 				if (err) { | ||||
| 					return callback(err); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user