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

use activityEventEmitter with page update

Shun Miyazawa 3 лет назад
Родитель
Сommit
cc8bc3323f

+ 1 - 1
packages/app/src/server/routes/index.js

@@ -173,7 +173,7 @@ module.exports = function(crowi, app) {
 
 
   // HTTP RPC Styled API (に徐々に移行していいこうと思う)
   // HTTP RPC Styled API (に徐々に移行していいこうと思う)
   apiV1Router.get('/pages.list'          , accessTokenParser , loginRequired , page.api.list);
   apiV1Router.get('/pages.list'          , accessTokenParser , loginRequired , page.api.list);
-  apiV1Router.post('/pages.update'       , accessTokenParser , loginRequiredStrictly , csrf, page.api.update);
+  apiV1Router.post('/pages.update'       , accessTokenParser , loginRequiredStrictly , csrf, addActivity, page.api.update);
   apiV1Router.get('/pages.exist'         , accessTokenParser , loginRequired , page.api.exist);
   apiV1Router.get('/pages.exist'         , accessTokenParser , loginRequired , page.api.exist);
   apiV1Router.get('/pages.updatePost'    , accessTokenParser, loginRequired, page.api.getUpdatePost);
   apiV1Router.get('/pages.updatePost'    , accessTokenParser, loginRequired, page.api.getUpdatePost);
   apiV1Router.get('/pages.getPageTag'    , accessTokenParser , loginRequired , page.api.getPageTag);
   apiV1Router.get('/pages.getPageTag'    , accessTokenParser , loginRequired , page.api.getPageTag);

+ 11 - 0
packages/app/src/server/routes/page.js

@@ -3,6 +3,7 @@ import { body } from 'express-validator';
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 import urljoin from 'url-join';
 import urljoin from 'url-join';
 
 
+import { SUPPORTED_TARGET_MODEL_TYPE, SUPPORTED_ACTION_TYPE } from '~/interfaces/activity';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { PathAlreadyExistsError } from '../models/errors';
 import { PathAlreadyExistsError } from '../models/errors';
@@ -157,6 +158,8 @@ module.exports = function(crowi, app) {
   const globalNotificationService = crowi.getGlobalNotificationService();
   const globalNotificationService = crowi.getGlobalNotificationService();
   const userNotificationService = crowi.getUserNotificationService();
   const userNotificationService = crowi.getUserNotificationService();
 
 
+  const activityEvent = crowi.event('activity');
+
   const XssOption = require('~/services/xss/xssOption');
   const XssOption = require('~/services/xss/xssOption');
   const Xss = require('~/services/xss/index');
   const Xss = require('~/services/xss/index');
   const initializedConfig = {
   const initializedConfig = {
@@ -987,6 +990,14 @@ module.exports = function(crowi, app) {
         logger.error('Create user notification failed', err);
         logger.error('Create user notification failed', err);
       }
       }
     }
     }
+
+    const activityId = res.locals.activity._id;
+    const parameters = {
+      targetModel: SUPPORTED_TARGET_MODEL_TYPE.MODEL_PAGE,
+      target: page,
+      action: SUPPORTED_ACTION_TYPE.ACTION_PAGE_UPDATE,
+    };
+    activityEvent.emit('update', activityId, parameters, page);
   };
   };
 
 
   /**
   /**

+ 0 - 13
packages/app/src/server/service/page.ts

@@ -155,19 +155,6 @@ class PageService {
     this.pageEvent.on('createMany', this.pageEvent.onCreateMany);
     this.pageEvent.on('createMany', this.pageEvent.onCreateMany);
     this.pageEvent.on('addSeenUsers', this.pageEvent.onAddSeenUsers);
     this.pageEvent.on('addSeenUsers', this.pageEvent.onAddSeenUsers);
 
 
-    // update
-    this.pageEvent.on('update', async(page, user) => {
-
-      this.pageEvent.onUpdate();
-
-      try {
-        await this.createAndSendNotifications(user, page, SUPPORTED_ACTION_TYPE.ACTION_PAGE_UPDATE);
-      }
-      catch (err) {
-        logger.error(err);
-      }
-    });
-
     // duplicate
     // duplicate
     this.pageEvent.on('duplicate', async(page, user) => {
     this.pageEvent.on('duplicate', async(page, user) => {
       try {
       try {