From c60e80d25baa6a81b28f6090ca848553d20b2bb7 Mon Sep 17 00:00:00 2001 From: Justin Reynolds Date: Wed, 26 Jun 2019 17:47:27 -0500 Subject: Add createdAt and modifiedAt to all collections --- models/invitationCodes.js | 87 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 27 deletions(-) (limited to 'models/invitationCodes.js') 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; -- cgit v1.2.3-1-g7c22