Преглед изворни кода

do not pass activities and pass actionUsers instead

kaori пре 4 година
родитељ
комит
e748f19fd5

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

@@ -112,5 +112,10 @@ activitySchema.post('save', async(savedActivity: ActivityDocument) => {
   activityEvent.emit('create', targetUsers, savedActivity);
 });
 
+activitySchema.statics.getActionUsersFromActivities = function(activities: ActivityDocument[]): any[] {
+  const actionUsers = activities.map((activity) => { return activity.user });
+
+  return actionUsers;
+};
 
 export default getOrCreateModel<ActivityDocument, ActivityModel>('Activity', activitySchema);

+ 13 - 3
packages/app/src/server/models/in-app-notification.ts

@@ -81,12 +81,22 @@ const inAppNotificationSchema = new Schema<InAppNotificationDocument, InAppNotif
 });
 inAppNotificationSchema.plugin(mongoosePaginate);
 
-inAppNotificationSchema.virtual('actionUsers').get(function(this: NotificationDocument) {
-  return Activity.getActionUsersFromActivities((this.activities as any) as ActivityDocument[]);
+inAppNotificationSchema.virtual('actionUsers',
+  {
+    ref: 'Activity',
+    localField: 'activities',
+    foreignField: 'user',
+  }).get(function(this: InAppNotificationDocument) {
+
+  const actionUsers = Activity.getActionUsersFromActivities((this.activities as any) as ActivityDocument[]);
+
+  console.log('actionUsersInAppNotification', actionUsers);
+
+  return actionUsers;
 });
 
 const transform = (doc, ret) => {
-  // delete ret.activities
+  delete ret.activities;
 };
 inAppNotificationSchema.set('toObject', { virtuals: true, transform });
 inAppNotificationSchema.set('toJSON', { virtuals: true, transform });