diff options
author | Justin Reynolds <justinr1234@gmail.com> | 2019-06-26 17:47:27 -0500 |
---|---|---|
committer | Justin Reynolds <justinr1234@gmail.com> | 2019-06-27 09:13:20 -0500 |
commit | c60e80d25baa6a81b28f6090ca848553d20b2bb7 (patch) | |
tree | 64bcea66932f4b4635d5df6901f18d5ba6db0a37 /models/invitationCodes.js | |
parent | fb728baf0c87bae5fa39d92089b667ff1ed69fa6 (diff) | |
download | wekan-c60e80d25baa6a81b28f6090ca848553d20b2bb7.tar.gz wekan-c60e80d25baa6a81b28f6090ca848553d20b2bb7.tar.bz2 wekan-c60e80d25baa6a81b28f6090ca848553d20b2bb7.zip |
Add createdAt and modifiedAt to all collections
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; |