Vulcan/packages/nova-comments/lib/methods.js

172 lines
5.8 KiB
JavaScript

// import { Callbacks } from 'meteor/nova:core';
// import Telescope from 'meteor/nova:lib';
// import Comments from './collection.js';
// import Posts from "meteor/nova:posts";
// import Users from 'meteor/nova:users';
// import { Messages } from 'meteor/nova:core';
//
// Comments.methods = {};
// // ------------------------------------------------------------------------------------------- //
// // -------------------------------------- Submit Comment ------------------------------------- //
// // ------------------------------------------------------------------------------------------- //
//
// Comments.methods.new = function (comment) {
//
// const currentUser = Users.findOne(comment.userId);
//
// comment = Callbacks.run("comments.new.sync", comment, currentUser);
//
// comment._id = Comments.insert(comment);
//
// // note: query for comment to get fresh document with collection-hooks effects applied
// Callbacks.runAsync("comments.new.async", Comments.findOne(comment._id));
//
// return comment;
// };
//
// Comments.methods.edit = function (commentId, modifier, comment) {
//
// if (typeof comment === "undefined") {
// comment = Comments.findOne(commentId);
// }
//
// modifier = Callbacks.run("comments.edit.sync", modifier, comment);
//
// Comments.update(commentId, modifier);
//
// Callbacks.runAsync("comments.edit.async", Comments.findOne(commentId), comment);
//
// return Comments.findOne(commentId);
// };
//
// // ------------------------------------------------------------------------------------------- //
// // ----------------------------------------- Methods ----------------------------------------- //
// // ------------------------------------------------------------------------------------------- //
//
// Meteor.methods({
//
// /**
// * @summary Meteor method for submitting a comment from the client
// * Required properties: postId, body
// * @memberof Comments
// * @isMethod true
// * @param {Object} comment - the comment being inserted
// */
// 'comments.new': function(comment){
//
// Comments.simpleSchema().namedContext("comments.new").validate(comment);
//
// comment = Callbacks.run("comments.new.method", comment, Meteor.user());
//
// if (Meteor.isServer && this.connection) {
// comment.userIP = this.connection.clientAddress;
// comment.userAgent = this.connection.httpHeaders["user-agent"];
// }
//
// return Comments.methods.new(comment);
// },
//
// /**
// * @summary Meteor method for editing a comment from the client
// * @memberof Comments
// * @isMethod true
// * @param {Object} commentId - the id of the comment being updated
// * @param {Object} modifier - the update modifier
// */
// 'comments.edit': function (commentId, modifier) {
//
// Comments.simpleSchema().namedContext("comments.edit").validate(modifier, {modifier: true});
// check(commentId, String);
//
// const comment = Comments.findOne(commentId);
//
// modifier = Callbacks.run("comments.edit.method", modifier, comment, Meteor.user());
//
// return Comments.methods.edit(commentId, modifier, comment);
// },
//
// /**
// * @summary Meteor method for deleting a comment
// * @memberof Comments
// * @isMethod true
// * @param {String} commentId - the id of the comment
// */
// 'comments.deleteById': function (commentId) {
//
// check(commentId, String);
//
// if (Meteor.isClient) return; // We don't have data in minimongo on the client
//
// var comment = Comments.findOne(commentId);
// var user = Meteor.user();
//
// if(Users.canEdit(user, comment)){
// // decrement post comment count and remove user ID from post
// Posts.update(comment.postId, {
// $inc: {commentCount: -1},
// $pull: {commenters: comment.userId}
// });
//
// // decrement user comment count and remove comment ID from user
// Users.update({_id: comment.userId}, {
// $inc: {'__commentCount': -1}
// });
//
// // note: should we also decrease user's comment karma ?
// // We don't actually delete the comment to avoid losing all child comments.
// // Instead, we give it a special flag
// Comments.update({_id: commentId}, {$set: {
// body: 'Deleted',
// htmlBody: 'Deleted',
// isDeleted: true
// }});
// } else {
// Messages.flash("You don't have permission to delete this comment.", "error");
// }
// },
//
// /**
// * @summary Upvote a comment
// * @memberof Comments
// * @isMethod true
// * @param {String} commentId - the id of the comment
// */
// 'comments.upvote': function (commentId) {
// check(commentId, String);
// return Telescope.operateOnItem.call(this, Comments, commentId, Meteor.user(), "upvote");
// },
//
// /**
// * @summary Downvote a comment
// * @memberof Comments
// * @isMethod true
// * @param {String} commentId - the id of the comment
// */
// 'comments.downvote': function (commentId) {
// check(commentId, String);
// return Telescope.operateOnItem.call(this, Comments, commentId, Meteor.user(), "downvote");
// },
//
// /**
// * @summary Cancel an upvote on a comment
// * @memberof Comments
// * @isMethod true
// * @param {String} commentId - the id of the comment
// */
// 'comments.cancelUpvote': function (commentId) {
// check(commentId, String);
// return Telescope.operateOnItem.call(this, Comments, commentId, Meteor.user(), "cancelUpvote");
// },
//
// /**
// * @summary Cancel a downvote on a comment
// * @memberof Comments
// * @isMethod true
// * @param {String} commentId - the id of the comment
// */
// 'comments.cancelDownvote': function (commentId) {
// check(commentId, String);
// return Telescope.operateOnItem.call(this, Comments, commentId, Meteor.user(), "cancelDownvote");
// }
//
// });