Explorar el Código

added the ability to save snapshots of pageId

Shun Miyazawa hace 4 años
padre
commit
9e23ff2d15

+ 1 - 0
packages/app/src/interfaces/in-app-notification.ts

@@ -16,6 +16,7 @@ export interface IInAppNotification {
   status: InAppNotificationStatuses
   status: InAppNotificationStatuses
   actionUsers: IUser[]
   actionUsers: IUser[]
   createdAt: Date
   createdAt: Date
+  pageIdSnapshot: string
 }
 }
 
 
 /*
 /*

+ 5 - 0
packages/app/src/server/models/in-app-notification.ts

@@ -20,6 +20,7 @@ export interface InAppNotificationDocument extends Document {
   activities: ActivityDocument[]
   activities: ActivityDocument[]
   status: string
   status: string
   createdAt: Date
   createdAt: Date
+  pageIdSnapshot: string
 }
 }
 
 
 
 
@@ -73,6 +74,10 @@ const inAppNotificationSchema = new Schema<InAppNotificationDocument, InAppNotif
     type: Date,
     type: Date,
     default: Date.now,
     default: Date.now,
   },
   },
+  pageIdSnapshot: {
+    type: String,
+    require: true,
+  },
 });
 });
 inAppNotificationSchema.plugin(mongoosePaginate);
 inAppNotificationSchema.plugin(mongoosePaginate);
 
 

+ 3 - 2
packages/app/src/server/service/in-app-notification.ts

@@ -53,7 +53,7 @@ export default class InAppNotificationService {
   }
   }
 
 
   upsertByActivity = async function(
   upsertByActivity = async function(
-      users: Types.ObjectId[], activity: ActivityDocument, createdAt?: Date | null,
+      users: Types.ObjectId[], activity: ActivityDocument, pageIdSnapshot: string, createdAt?: Date | null,
   ): Promise<void> {
   ): Promise<void> {
     const {
     const {
       _id: activityId, targetModel, target, action,
       _id: activityId, targetModel, target, action,
@@ -62,7 +62,7 @@ export default class InAppNotificationService {
     const lastWeek = subDays(now, 7);
     const lastWeek = subDays(now, 7);
     const operations = users.map((user) => {
     const operations = users.map((user) => {
       const filter = {
       const filter = {
-        user, target, action, createdAt: { $gt: lastWeek },
+        user, target, action, createdAt: { $gt: lastWeek }, pageIdSnapshot,
       };
       };
       const parameters = {
       const parameters = {
         user,
         user,
@@ -71,6 +71,7 @@ export default class InAppNotificationService {
         action,
         action,
         status: STATUS_UNREAD,
         status: STATUS_UNREAD,
         createdAt: now,
         createdAt: now,
+        pageIdSnapshot,
         $addToSet: { activities: activityId },
         $addToSet: { activities: activityId },
       };
       };
       return {
       return {