Просмотр исходного кода

importing User model with getModelSafely

kaori 4 лет назад
Родитель
Сommit
8404092700
1 измененных файлов с 9 добавлено и 12 удалено
  1. 9 12
      packages/app/src/server/models/activity.ts

+ 9 - 12
packages/app/src/server/models/activity.ts

@@ -3,16 +3,13 @@ import {
   Types, Document, Model, Schema,
 } from 'mongoose';
 
-import { getOrCreateModel } from '../util/mongoose-utils';
+import { getOrCreateModel, getModelSafely } from '../util/mongoose-utils';
 import loggerFactory from '../../utils/logger';
-
 import ActivityDefine from '../util/activityDefine';
 
-// import activityEvent from '../events/activity';
-import { InAppNotification } from './in-app-notification';
 import Watcher from './watcher';
-// import User from './user';
-import User = require('./user');
+// import { InAppNotification } from './in-app-notification';
+// import activityEvent from '../events/activity';
 
 const logger = loggerFactory('growi:models:activity');
 
@@ -175,7 +172,7 @@ activitySchema.statics.getActionUsersFromActivities = function(activities) {
 };
 
 activitySchema.methods.getNotificationTargetUsers = async function() {
-  // const User = crowi.model('User');
+  const User = getModelSafely('User') || require('~/server/models/user')();
   const { user: actionUser, targetModel, target } = this;
 
   const model: any = await this.model(targetModel).findById(target);
@@ -191,11 +188,11 @@ activitySchema.methods.getNotificationTargetUsers = async function() {
     return array.filter(object => !ids.includes(object.toString()));
   };
   const notificationUsers = filter(unique([...targetUsers, ...watchUsers]), [...ignoreUsers, actionUser]);
-  // const activeNotificationUsers = await User.find({
-  //   _id: { $in: notificationUsers },
-  //   status: User.STATUS_ACTIVE,
-  // }).distinct('_id');
-  // return activeNotificationUsers;
+  const activeNotificationUsers = await User.find({
+    _id: { $in: notificationUsers },
+    status: User.STATUS_ACTIVE,
+  }).distinct('_id');
+  return activeNotificationUsers;
 };
 
 /**