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

Modified the code based on the FB and specified the parameter

Shunm634-source 3 лет назад
Родитель
Сommit
d2ba4688df

+ 2 - 2
packages/app/src/server/models/activity.ts

@@ -72,8 +72,8 @@ activitySchema.methods.getNotificationTargetUsers = async function() {
   const { user: actionUser, target } = this;
   const { user: actionUser, target } = this;
 
 
   const [subscribeUsers, unsubscribeUsers] = await Promise.all([
   const [subscribeUsers, unsubscribeUsers] = await Promise.all([
-    Subscription.getSubscription((target as Types.ObjectId)),
-    Subscription.getUnsubscription((target as Types.ObjectId)),
+    Subscription.getSubscription(target),
+    Subscription.getUnsubscription(target),
   ]);
   ]);
   const unique = array => Object.values(array.reduce((objects, object) => ({ ...objects, [object.toString()]: object }), {}));
   const unique = array => Object.values(array.reduce((objects, object) => ({ ...objects, [object.toString()]: object }), {}));
   const filter = (array, pull) => {
   const filter = (array, pull) => {

+ 6 - 6
packages/app/src/server/models/subscription.ts

@@ -24,9 +24,9 @@ export interface SubscriptionModel extends Model<SubscriptionDocument> {
   findByUserIdAndTargetId(userId: Types.ObjectId | string, targetId: Types.ObjectId | string): any
   findByUserIdAndTargetId(userId: Types.ObjectId | string, targetId: Types.ObjectId | string): any
   upsertSubscription(user: Types.ObjectId, targetModel: string, target: Types.ObjectId, status: string): any
   upsertSubscription(user: Types.ObjectId, targetModel: string, target: Types.ObjectId, status: string): any
   subscribeByPageId(user: Types.ObjectId, pageId: Types.ObjectId, status: string): any
   subscribeByPageId(user: Types.ObjectId, pageId: Types.ObjectId, status: string): any
-  getSubscription(target: Types.ObjectId): Promise<Types.ObjectId[]>
-  getUnsubscription(target: Types.ObjectId): Promise<Types.ObjectId[]>
-  getSubscriptions(targets: Types.ObjectId[]): Promise<Types.ObjectId[]>
+  getSubscription(target: Types.ObjectId | Document): Promise<Types.ObjectId[]>
+  getUnsubscription(target: Types.ObjectId | Document): Promise<Types.ObjectId[]>
+  getSubscriptions(targets: Types.ObjectId[] | Document[]): Promise<Types.ObjectId[]>
 }
 }
 
 
 const subscriptionSchema = new Schema<SubscriptionDocument, SubscriptionModel>({
 const subscriptionSchema = new Schema<SubscriptionDocument, SubscriptionModel>({
@@ -80,15 +80,15 @@ subscriptionSchema.statics.subscribeByPageId = function(user, pageId, status) {
   return this.upsertSubscription(user, 'Page', pageId, status);
   return this.upsertSubscription(user, 'Page', pageId, status);
 };
 };
 
 
-subscriptionSchema.statics.getSubscription = async function(target) {
+subscriptionSchema.statics.getSubscription = async function(target: Types.ObjectId | undefined) {
   return this.find({ target, status: SubscriptionStatusType.SUBSCRIBE }).distinct('user');
   return this.find({ target, status: SubscriptionStatusType.SUBSCRIBE }).distinct('user');
 };
 };
 
 
-subscriptionSchema.statics.getUnsubscription = async function(target) {
+subscriptionSchema.statics.getUnsubscription = async function(target: Types.ObjectId | undefined) {
   return this.find({ target, status: SubscriptionStatusType.UNSUBSCRIBE }).distinct('user');
   return this.find({ target, status: SubscriptionStatusType.UNSUBSCRIBE }).distinct('user');
 };
 };
 
 
-subscriptionSchema.statics.getSubscriptions = async function(targets) {
+subscriptionSchema.statics.getSubscriptions = async function(targets: Document[] | Types.ObjectId[]) {
   return this.find({ $in: targets, status: SubscriptionStatusType.SUBSCRIBE }).distinct('user');
   return this.find({ $in: targets, status: SubscriptionStatusType.SUBSCRIBE }).distinct('user');
 };
 };
 
 

+ 1 - 1
packages/app/src/server/service/page.ts

@@ -2234,7 +2234,7 @@ class PageService {
     return shortBodiesMap;
     return shortBodiesMap;
   }
   }
 
 
-  private async createAndSendNotifications(page, descendantPages, user, action) {
+  private async createAndSendNotifications(page: PageDocument, descendantPages: PageDocument[] | null, user: any, action) {
     const { activityService, inAppNotificationService } = this.crowi;
     const { activityService, inAppNotificationService } = this.crowi;
 
 
     const snapshot = stringifySnapshot(page);
     const snapshot = stringifySnapshot(page);