Vulcan/packages/telescope-posts/lib/server/publications.js

125 lines
3.2 KiB
JavaScript
Raw Normal View History

Posts._ensureIndex({"status": 1, "postedAt": 1});
2016-02-16 15:08:30 +09:00
Meteor.publish('posts.list', function(terms) {
var parameters = Posts.parameters.get(terms),
posts = Posts.find(parameters.find, parameters.options);
Counts.publish(this, 'posts.list', Posts.find(parameters.find, parameters.options));
return posts;
});
Meteor.publish('posts.single', function(terms) {
2016-02-16 15:08:30 +09:00
return Posts.find(terms);
2016-02-16 15:08:30 +09:00
});
// Publish a list of posts
2016-02-16 15:08:30 +09:00
// Meteor.publish('postsList', function(terms) {
2016-02-16 15:08:30 +09:00
// this.unblock();
2016-02-16 15:08:30 +09:00
// if (this.userId) { // add currentUserId to terms if a user is logged in
// terms.currentUserId = this.userId;
// }
2016-02-16 15:08:30 +09:00
// if(Users.can.viewById(this.userId)){
// var parameters = Posts.parameters.get(terms),
// posts = Posts.find(parameters.find, parameters.options);
2016-02-16 15:08:30 +09:00
// return posts;
// }
// return [];
// });
2016-02-16 15:08:30 +09:00
// // Publish all the users that have posted the currently displayed list of posts
// // plus the commenters for each post
2016-02-16 15:08:30 +09:00
// Meteor.publish('postsListUsers', function(terms) {
2015-09-17 14:51:14 +09:00
2016-02-16 15:08:30 +09:00
// this.unblock();
2016-02-16 15:08:30 +09:00
// if (this.userId) {
// terms.currentUserId = this.userId; // add userId to terms
// }
2016-02-16 15:08:30 +09:00
// if(Users.can.viewById(this.userId)){
// var parameters = Posts.parameters.get(terms),
// posts = Posts.find(parameters.find, parameters.options),
// userIds = _.pluck(posts.fetch(), 'userId');
2016-02-16 15:08:30 +09:00
// // for each post, add first four commenter's userIds to userIds array
// posts.forEach(function (post) {
// userIds = userIds.concat(_.first(post.commenters,4));
// });
2016-02-16 15:08:30 +09:00
// userIds = _.unique(userIds);
2016-02-16 15:08:30 +09:00
// return Meteor.users.find({_id: {$in: userIds}}, {fields: Users.pubsub.avatarProperties, multi: true});
// }
// return [];
// });
2016-02-16 15:08:30 +09:00
// // Publish a single post
2014-09-04 16:39:35 +09:00
2016-02-16 15:08:30 +09:00
// Meteor.publish('singlePost', function(postId) {
2016-02-16 15:08:30 +09:00
// check(postId, String);
// this.unblock();
2016-02-16 15:08:30 +09:00
// var user = Meteor.users.findOne(this.userId);
// var post = Posts.findOne(postId);
2016-02-16 15:08:30 +09:00
// if (Users.can.viewPost(user, post)){
// return Posts.find(postId);
// } else {
// return [];
// }
2016-02-16 15:08:30 +09:00
// });
2014-09-04 16:39:35 +09:00
2016-02-16 15:08:30 +09:00
// // Publish author of the current post, authors of its comments, and upvoters of the post
2014-09-04 16:39:35 +09:00
2016-02-16 15:08:30 +09:00
// Meteor.publish('postUsers', function(postId) {
2016-02-16 15:08:30 +09:00
// check(postId, String);
// this.unblock();
2016-02-16 15:08:30 +09:00
// if (Users.can.viewById(this.userId)){
// // publish post author and post commenters
// var post = Posts.findOne(postId);
// var users = [];
2016-02-16 15:08:30 +09:00
// if (post) {
2016-02-16 15:08:30 +09:00
// users.push(post.userId); // publish post author's ID
2015-04-28 09:44:43 +09:00
2016-02-16 15:08:30 +09:00
// // get IDs from all commenters on the post
// var comments = Comments.find({postId: post._id}).fetch();
// if (comments.length) {
// users = users.concat(_.pluck(comments, "userId"));
// }
2016-02-16 15:08:30 +09:00
// // publish upvoters
// if (post.upvoters && post.upvoters.length) {
// users = users.concat(post.upvoters);
// }
2016-02-16 15:08:30 +09:00
// // publish downvoters
// if (post.downvoters && post.downvoters.length) {
// users = users.concat(post.downvoters);
// }
2016-02-16 15:08:30 +09:00
// }
2014-09-04 16:39:35 +09:00
2016-02-16 15:08:30 +09:00
// // remove any duplicate IDs
// users = _.unique(users);
2016-02-16 15:08:30 +09:00
// return Meteor.users.find({_id: {$in: users}}, {fields: Users.pubsub.publicProperties});
// }
// return [];
// });