mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-02-28 01:00:59 +01:00
feat(forums): get topic data
This commit is contained in:
@@ -39,8 +39,7 @@ exports.create = function (req, res) {
|
||||
exports.list = function (req, res) {
|
||||
Forum.find()
|
||||
.sort('order -createdat')
|
||||
.populate('lastNewTopic')
|
||||
.populate('lastReplyTopic')
|
||||
.populate('lastTopic')
|
||||
.populate('moderators', 'username displayName profileImageURL uploaded downloaded')
|
||||
.exec(function (err, forums) {
|
||||
if (err) {
|
||||
@@ -164,8 +163,7 @@ exports.forumByID = function (req, res, next, id) {
|
||||
}
|
||||
|
||||
Forum.findById(id)
|
||||
.populate('lastNewTopic')
|
||||
.populate('lastReplyTopic')
|
||||
.populate('lastTopic')
|
||||
.populate('moderators', 'username displayName profileImageURL uploaded downloaded')
|
||||
.exec(function (err, forum) {
|
||||
if (err) {
|
||||
|
||||
@@ -60,8 +60,6 @@ exports.listTopics = function (req, res) {
|
||||
.sort('-isTop -updatedAt -createdAt')
|
||||
.populate('user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('lastUser', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('_scoreList.user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('_replies.user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.exec(function (err, topics) {
|
||||
if (err) {
|
||||
return res.status(422).send({
|
||||
@@ -98,3 +96,41 @@ exports.postNewTopic = function (req, res) {
|
||||
lastTopic: topic
|
||||
}).exec();
|
||||
};
|
||||
|
||||
/**
|
||||
* read forum
|
||||
* @param req
|
||||
* @param res
|
||||
*/
|
||||
exports.readTopic = function (req, res) {
|
||||
res.json(req.topic);
|
||||
};
|
||||
|
||||
/**
|
||||
* Invitation middleware
|
||||
*/
|
||||
exports.topicById = function (req, res, next, id) {
|
||||
|
||||
if (!mongoose.Types.ObjectId.isValid(id)) {
|
||||
return res.status(400).send({
|
||||
message: 'Topic is invalid'
|
||||
});
|
||||
}
|
||||
|
||||
Topic.findById(id)
|
||||
.populate('user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('lastUser', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('_scoreList.user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.populate('_replies.user', 'username displayName profileImageURL uploaded downloaded')
|
||||
.exec(function (err, topic) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
} else if (!topic) {
|
||||
return res.status(404).send({
|
||||
message: 'No topic with that identifier has been found'
|
||||
});
|
||||
}
|
||||
req.topic = topic;
|
||||
next();
|
||||
});
|
||||
};
|
||||
|
||||
@@ -7,17 +7,18 @@ var forumsPolicy = require('../policies/forums.server.policy'),
|
||||
forums = require('../controllers/forums.server.controller');
|
||||
|
||||
module.exports = function (app) {
|
||||
// Articles collection routes
|
||||
app.route('/api/forums').all(forumsPolicy.isAllowed)
|
||||
.get(forums.list);
|
||||
|
||||
//Single article routes
|
||||
app.route('/api/forums/:forumId').all(forumsPolicy.isAllowed)
|
||||
.get(forums.read);
|
||||
|
||||
//Single article routes
|
||||
app.route('/api/topics/:forumId').all(forumsPolicy.isAllowed)
|
||||
.post(forums.postNewTopic)
|
||||
.get(forums.listTopics);
|
||||
|
||||
app.route('/api/topics/:forumId/:topicId').all(forumsPolicy.isAllowed)
|
||||
.get(forums.readTopic);
|
||||
|
||||
app.param('topicId', forums.topicById);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user