diff options
Diffstat (limited to 'models/invitationCodes.js')
-rw-r--r-- | models/invitationCodes.js | 87 |
1 files changed, 60 insertions, 27 deletions
diff --git a/models/invitationCodes.js b/models/invitationCodes.js index 53163f06..5cdfc744 100644 --- a/models/invitationCodes.js +++ b/models/invitationCodes.js @@ -1,45 +1,78 @@ InvitationCodes = new Mongo.Collection('invitation_codes'); -InvitationCodes.attachSchema(new SimpleSchema({ - code: { - type: String, - }, - email: { - type: String, - unique: true, - regEx: SimpleSchema.RegEx.Email, - }, - createdAt: { - type: Date, - denyUpdate: false, - }, - // always be the admin if only one admin - authorId: { - type: String, - }, - boardsToBeInvited: { - type: [String], - optional: true, - }, - valid: { - type: Boolean, - defaultValue: true, - }, -})); +InvitationCodes.attachSchema( + new SimpleSchema({ + code: { + type: String, + }, + email: { + type: String, + unique: true, + regEx: SimpleSchema.RegEx.Email, + }, + createdAt: { + type: Date, + denyUpdate: false, + optional: true, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert) { + return new Date(); + } else { + this.unset(); + } + }, + }, + modifiedAt: { + type: Date, + denyUpdate: false, + // eslint-disable-next-line consistent-return + autoValue() { + if (this.isInsert || this.isUpsert || this.isUpdate) { + return new Date(); + } else { + this.unset(); + } + }, + }, + // always be the admin if only one admin + authorId: { + type: String, + }, + boardsToBeInvited: { + type: [String], + optional: true, + }, + valid: { + type: Boolean, + defaultValue: true, + }, + }) +); InvitationCodes.helpers({ - author(){ + author() { return Users.findOne(this.authorId); }, }); +InvitationCodes.before.update((userId, doc, fieldNames, modifier, options) => { + modifier.$set = modifier.$set || {}; + modifier.$set.modifiedAt = Date.now(); +}); + // InvitationCodes.before.insert((userId, doc) => { // doc.createdAt = new Date(); // doc.authorId = userId; // }); if (Meteor.isServer) { + Meteor.startup(() => { + InvitationCodes._collection._ensureIndex({ modifiedAt: -1 }); + }); Boards.deny({ fetch: ['members'], }); } + +export default InvitationCodes; |