import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import { check } from 'meteor/check'; export const Lists = new Mongo.Collection('lists'); Lists.allow({ insert: function(userId, doc){ // if use id exists, allow insert return !!userId; }, }); Meteor.methods({ 'add.list' (listName) { check(listName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to add lists. Make sure you are logged in with valid user credentials.'); } return Lists.insert({ listName: listName, listOwner: this.userId, listComplete: false, }); }, 'edit.list' (listId, listName) { check(listId, String); check(listName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to edit lists. Make sure you are logged in with valid user credentials.'); } return Lists.update({ _id: listId }, { $set: { listName: listName, } }); }, 'delete.list' (listId) { check(listId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete lists. Make sure you are logged in with valid user credentials.'); } let listInfo = Lists.findOne({ _id: listId }); let myId = this.userId; if (myId == listInfo.listOwner) { return Lists.remove({ _id: listId }); } else { console.log("User not allowed to delete this list. Not the owner!"); return("Not Allowed!"); } }, 'mark.complete' (listId) { check(listId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark lists complete. Make sure you are logged in with valid user credentials.'); } let listInfo = Lists.findOne({ _id: listId }); let myId = this.userId; if (myId == listInfo.listOwner) { return Lists.update({ _id: listId }, { $set: { listComplete: true, completedOn: new Date() } }); } else { console.log("User not allowed to mark lists complete. Not a member of the list!"); return("Not Allowed!"); } } });