From 3b9f2ca7c2fffa230bb0c6d4254a88deb9fbb023 Mon Sep 17 00:00:00 2001 From: Justin Reynolds Date: Thu, 5 Sep 2019 12:29:45 -0500 Subject: Fixes #2596 incorrect date types for created & updated --- models/accountSettings.js | 2 ++ models/actions.js | 10 ++++++++++ models/activities.js | 6 ++++++ models/announcements.js | 2 ++ models/boards.js | 2 ++ models/cardComments.js | 2 ++ models/cards.js | 2 ++ models/checklistItems.js | 2 ++ models/checklists.js | 2 ++ models/customFields.js | 2 ++ models/integrations.js | 2 ++ models/invitationCodes.js | 2 ++ models/lists.js | 2 ++ models/org.js | 2 ++ models/orgUser.js | 2 ++ models/rules.js | 2 ++ models/settings.js | 2 ++ models/swimlanes.js | 2 ++ models/triggers.js | 10 ++++++++++ models/unsavedEdits.js | 2 ++ models/users.js | 2 ++ 21 files changed, 62 insertions(+) (limited to 'models') diff --git a/models/accountSettings.js b/models/accountSettings.js index ed1087ca..f61614b8 100644 --- a/models/accountSettings.js +++ b/models/accountSettings.js @@ -20,6 +20,8 @@ AccountSettings.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/actions.js b/models/actions.js index e9fa9114..8995d101 100644 --- a/models/actions.js +++ b/models/actions.js @@ -14,6 +14,16 @@ Actions.allow({ }, }); +Actions.before.insert((userId, doc) => { + doc.createdAt = new Date(); + doc.modifiedAt = doc.createdAt; +}); + +Actions.before.update((userId, doc, fieldNames, modifier) => { + modifier.$set = modifier.$set || {}; + modifier.$set.modifiedAt = new Date(); +}); + Actions.helpers({ description() { return this.desc; diff --git a/models/activities.js b/models/activities.js index 3ecd5c8c..8f7e1285 100644 --- a/models/activities.js +++ b/models/activities.js @@ -62,8 +62,14 @@ Activities.helpers({ //}, }); +Activities.before.update((userId, doc, fieldNames, modifier) => { + modifier.$set = modifier.$set || {}; + modifier.$set.modifiedAt = new Date(); +}); + Activities.before.insert((userId, doc) => { doc.createdAt = new Date(); + doc.modifiedAt = doc.createdAt; }); Activities.after.insert((userId, doc) => { diff --git a/models/announcements.js b/models/announcements.js index c08710b8..7fdf8d8b 100644 --- a/models/announcements.js +++ b/models/announcements.js @@ -25,6 +25,8 @@ Announcements.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/boards.js b/models/boards.js index b5f8b01b..af7685ae 100644 --- a/models/boards.js +++ b/models/boards.js @@ -55,6 +55,8 @@ Boards.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/cardComments.js b/models/cardComments.js index 40723582..39477e14 100644 --- a/models/cardComments.js +++ b/models/cardComments.js @@ -34,6 +34,8 @@ CardComments.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/cards.js b/models/cards.js index d92d003c..1414f6d7 100644 --- a/models/cards.js +++ b/models/cards.js @@ -107,6 +107,8 @@ Cards.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/checklistItems.js b/models/checklistItems.js index e6451fbf..7f3ab095 100644 --- a/models/checklistItems.js +++ b/models/checklistItems.js @@ -44,6 +44,8 @@ ChecklistItems.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/checklists.js b/models/checklists.js index f139192e..7ad9cae5 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -35,6 +35,8 @@ Checklists.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/customFields.js b/models/customFields.js index 6b5697c1..cc798b16 100644 --- a/models/customFields.js +++ b/models/customFields.js @@ -78,6 +78,8 @@ CustomFields.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/integrations.js b/models/integrations.js index 0b2e08c6..41334744 100644 --- a/models/integrations.js +++ b/models/integrations.js @@ -63,6 +63,8 @@ Integrations.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/invitationCodes.js b/models/invitationCodes.js index 75db5708..abb30f32 100644 --- a/models/invitationCodes.js +++ b/models/invitationCodes.js @@ -18,6 +18,8 @@ InvitationCodes.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/lists.js b/models/lists.js index e57849d7..9136c337 100644 --- a/models/lists.js +++ b/models/lists.js @@ -45,6 +45,8 @@ Lists.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/org.js b/models/org.js index ce6f377e..a24d829d 100644 --- a/models/org.js +++ b/models/org.js @@ -98,6 +98,8 @@ Org.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/orgUser.js b/models/orgUser.js index b671cb41..f310fa9c 100644 --- a/models/orgUser.js +++ b/models/orgUser.js @@ -49,6 +49,8 @@ OrgUser.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/rules.js b/models/rules.js index 202071fc..2e6729cc 100644 --- a/models/rules.js +++ b/models/rules.js @@ -27,6 +27,8 @@ Rules.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/settings.js b/models/settings.js index 4a0359d5..8eb02c5b 100644 --- a/models/settings.js +++ b/models/settings.js @@ -60,6 +60,8 @@ Settings.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/swimlanes.js b/models/swimlanes.js index 769aaed3..46e410da 100644 --- a/models/swimlanes.js +++ b/models/swimlanes.js @@ -38,6 +38,8 @@ Swimlanes.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/triggers.js b/models/triggers.js index 45f5e6fc..a95b1235 100644 --- a/models/triggers.js +++ b/models/triggers.js @@ -12,6 +12,16 @@ Triggers.mutations({ }, }); +Triggers.before.insert((userId, doc) => { + doc.createdAt = new Date(); + doc.updatedAt = doc.createdAt; +}); + +Triggers.before.update((userId, doc, fieldNames, modifier) => { + modifier.$set = modifier.$set || {}; + modifier.$set.updatedAt = new Date(); +}); + Triggers.allow({ insert(userId, doc) { return allowIsBoardAdmin(userId, Boards.findOne(doc.boardId)); diff --git a/models/unsavedEdits.js b/models/unsavedEdits.js index 89418bfb..81331598 100644 --- a/models/unsavedEdits.js +++ b/models/unsavedEdits.js @@ -29,6 +29,8 @@ UnsavedEditCollection.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } diff --git a/models/users.js b/models/users.js index 55d85e07..ee53c7ab 100644 --- a/models/users.js +++ b/models/users.js @@ -54,6 +54,8 @@ Users.attachSchema( autoValue() { if (this.isInsert) { return new Date(); + } else if (this.isUpsert) { + return { $setOnInsert: new Date() }; } else { this.unset(); } -- cgit v1.2.3-1-g7c22