12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * @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
- };
- }
- });
|