Răsfoiți Sursa

Merge pull request #4430 from weseek/imprv/#78176-create-inAppNotification-in-pageService

Imprv/#78176 create inAppNotification in page service
Yuki Takei 4 ani în urmă
părinte
comite
82106c366e

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

@@ -40,8 +40,8 @@ class ActivityService {
       action: ActivityDefine.ACTION_UPDATE,
     };
     const Activity = getModelSafely('Activity') || require('../models/activity')(this.crowi);
-    await Activity.createByParameters(parameters);
-    return;
+    const savedActivity = await Activity.createByParameters(parameters);
+    return savedActivity;
   };
 
 

+ 2 - 2
packages/app/src/server/service/comment.ts

@@ -25,11 +25,11 @@ class CommentService {
     this.activityEvent = crowi.event('activity');
 
     // init
-    this.initCommentEvent();
+    this.initCommentEventListeners();
   }
 
 
-  initCommentEvent(): void {
+  initCommentEventListeners(): void {
     // create
     this.commentEvent.on('create', async(savedComment) => {
 

+ 6 - 2
packages/app/src/server/service/page.js

@@ -31,12 +31,16 @@ class PageService {
 
     // update
     this.pageEvent.on('update', async(page, user) => {
-      const { activityService } = this.crowi;
+      const { activityService, inAppNotificationService } = this.crowi;
 
       this.pageEvent.onUpdate();
 
       try {
-        await activityService.createByPageUpdate(page, user);
+        const savedActivity = await activityService.createByPageUpdate(page, user);
+        let targetUsers = [];
+        targetUsers = await savedActivity.getNotificationTargetUsers();
+
+        await inAppNotificationService.upsertByActivity(targetUsers, savedActivity);
       }
       catch (err) {
         logger.error(err);