Skip to content

Instantly share code, notes, and snippets.

@Prateek479
Created November 10, 2014 12:35
Show Gist options
  • Save Prateek479/b50ceffe138d329e03bb to your computer and use it in GitHub Desktop.
Save Prateek479/b50ceffe138d329e03bb to your computer and use it in GitHub Desktop.
/**
* List of Posts
*/
exports.all = function(req, res) {
// async.waterfall([
// function(done) {
var query;
var group_list = req.user.groups;
group_list.push(null);
if (req.query.group) {
query = Post.find({
group: req.query.group
});
} else if (req.query.wallUser) {
query = Post.find({
$or: [{
user: req.query.wallUser,
status: true
}, {
wallUser: req.query.wallUser
}]
});
} else {
query = Post.find({
$and: [{
pinPost: false,
status: true
}, {
$or: [{
$and: [{
group: null
}, {
wallUser: null
}]
}, {
$and: [{
wallUser: {
$exists: true,
$ne: null
}
}, {
$or: [{
wallUser: req.user._id
}, {
user: req.user._id
}, {
wallUser: {
$in: [] // Have to update this to req.user.following
}
}]
}],
}, {
$and: [{
group: {
$exists: true,
$ne: null
}
}, {
group: {
$in: group_list
}
}]
}]
}]
});
}
if (req.query.limit) {
query.limit(req.query.limit);
}
if (req.query.skip) {
query.skip(req.query.skip);
}
query.sort('-created')
.populate('user', 'name username picture followers')
.populate('likes', 'name username picture')
.populate('mentionsUser', 'name email picture')
.populate('wallUser', 'name username picture')
.populate('group', 'name members')
.exec(function(err, posts) {
if (err) {
return res.json(500, {
error: 'Cannot list the posts'
});
}
// if (req.query.wallUser || req.query.group)
res.json(posts);
// else
// done(err, posts, posts[0].created, posts[9].created);
});
// },
// function(postLists, start, end, done) {
// console.log('here is end ', end);
// var query = User.find({
// $and: [{
// 'awards.created': {
// $gte: end
// }
// }, {
// 'awards.0': {
// $exists: true
// }
// }]
// });
// query.sort('-created');
// if (req.query.awardsLimit)
// query.limit(req.query.awardsLimit);
// if (req.query.awardSkip)
// query.skip(req.query.awardSkip);
// query.populate('awards.award')
// .exec(function(err, awards) {
// if (err) {
// res.render('error', {
// status: 500
// });
// } else {
// var awrds = [];
// awards.forEach(function(usr) {
// if (usr.name) {
// var aw = [{
// '_id': usr._id,
// 'name': usr.name,
// 'picture': usr.picture,
// 'awards': _.last(usr.awards)
// }];
// awrds = awrds.concat(aw);
// }
// });
// awrds = _.sortBy(awrds, 'date');
// var result = postLists.concat(awrds);
// done(err, result, start, end);
// }
// });
// },
// function(postLists, start, end, done) {
// console.log('start date', start);
// console.log('end date', end);
// var query = Events.find({
// $and: [{
// created: {
// $gte: end
// }
// }, {
// showevent: true
// }]
// });
// query.sort('-created');
// if (req.query.eventLimit)
// query.limit(req.query.eventLimit);
// if (req.query.eventSkip)
// query.skip(req.query.eventSkip);
// query.populate('user').exec(function(err, events) {
// console.log('here is event', events)
// if (err) {
// return res.json(500, {
// error: 'Cannot list the events'
// });
// }
// var result = postLists.concat(events);
// result.sort(function(a, b) {
// var c = new Date(a.created);
// var d = new Date(b.created);
// return c - d;
// });
// res.json(result);
// });
// }
// ]);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment