Explorar o código

successfully obtained user id on the front side

Shun Miyazawa %!s(int64=4) %!d(string=hai) anos
pai
achega
d776038aed
Modificáronse 1 ficheiros con 12 adicións e 17 borrados
  1. 12 17
      packages/app/src/server/service/page.js

+ 12 - 17
packages/app/src/server/service/page.js

@@ -33,20 +33,14 @@ class PageService {
 
     // update
     this.pageEvent.on('update', async(page, user) => {
-      const { inAppNotificationService } = this.crowi;
 
       this.pageEvent.onUpdate();
 
       try {
-        const savedActivity = await this.createByPageUpdate(page, user);
-        let targetUsers = [];
-        targetUsers = await savedActivity.getNotificationTargetUsers();
-
-        await inAppNotificationService.upsertByActivity(targetUsers, savedActivity);
+        await this.createAndSendNotifications(page, user);
       }
       catch (err) {
         logger.error(err);
-
       }
     });
 
@@ -766,25 +760,26 @@ class PageService {
     }
   }
 
-  /**
-   * @param {Page} page
-   * @param {User} user
-   * @return {Promise}
-   */
-  createByPageUpdate = async function(page, user) {
-    const { activityService } = this.crowi;
+  createAndSendNotifications = async function(page, user) {
 
+    const { activityService, inAppNotificationService } = this.crowi;
+
+    // Create activity
     const parameters = {
       user: user._id,
       targetModel: ActivityDefine.MODEL_PAGE,
       target: page,
       action: ActivityDefine.ACTION_UPDATE,
     };
+    const activity = await activityService.createByParameters(parameters);
 
-    const savedActivity = await activityService.createByParameters(parameters);
-    return savedActivity;
-  };
+    // Get user to be notified
+    const targetUsers = await activity.getNotificationTargetUsers();
 
+    // Create and send notifications
+    await inAppNotificationService.upsertByActivity(targetUsers, activity);
+    await inAppNotificationService.emitSocketIo(targetUsers);
+  };
 
 }