/** * @file * * * User: marand * Date: 30/08/15 * Time: 10:48 */ // Not a "var", to make it global. Posts = new Mongo.Collection('posts'); // Removed Posts.allow : we no longer trigger inserts from client. // This is in lib/ instead of server/ for latency compensation (?). Meteor.methods({ postInsert: function(postAttributes) { check(Meteor.userId(), String); check(postAttributes, { title: String, url: String }); if (Meteor.isServer) { postAttributes.title += " (server)"; Meteor._sleepForMs(5000); } else { postAttributes.title += " (client)"; } var postWithSameLink = Posts.findOne({ url: postAttributes.url }); if (postWithSameLink) { // Return to skip the insert. return { postExists: true, _id: postWithSameLink._id } } var user = Meteor.user(); var post = _.extend(postAttributes, { userId: user._id, author: user.username, submitted: new Date() }); var postId = Posts.insert(post); return { _id: postId }; } });