Bladeren bron

apply activityEvent

Shun Miyazawa 3 jaren geleden
bovenliggende
commit
4c33dfd814

+ 6 - 12
packages/app/src/server/routes/apiv3/logout.js

@@ -10,23 +10,17 @@ const express = require('express');
 const router = express.Router();
 
 module.exports = (crowi) => {
-  const activityService = crowi.activityService;
+  const activtyEvent = crowi.event('activity');
   const addActivity = generateAddActivityMiddleware(crowi);
 
   router.post('/', addActivity, async(req, res) => {
     req.session.destroy();
 
-    // return response first
-    res.send();
-
-    try {
-      const activityId = res.locals.activity._id;
-      const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGOUT };
-      await activityService.updateByParameters(activityId, parameters);
-    }
-    catch (err) {
-      logger.error('Update activity failed', err);
-    }
+    const activityId = res.locals.activity._id;
+    const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGOUT };
+    activtyEvent.emit('update', activityId, parameters);
+
+    return res.send();
   });
 
   return router;

+ 10 - 24
packages/app/src/server/routes/apiv3/pages.js

@@ -151,6 +151,8 @@ module.exports = (crowi) => {
   const PageTagRelation = crowi.model('PageTagRelation');
   const GlobalNotificationSetting = crowi.model('GlobalNotificationSetting');
 
+  const activtyEvent = crowi.event('activity');
+
   const globalNotificationService = crowi.getGlobalNotificationService();
   const userNotificationService = crowi.getUserNotificationService();
 
@@ -554,31 +556,15 @@ module.exports = (crowi) => {
       logger.error('Move notification failed', err);
     }
 
-    // return response first
-    res.apiv3(result);
-
-    let activity;
-    try {
-      const activityId = res.locals.activity._id;
-      const parameters = {
-        targetModel: SUPPORTED_TARGET_MODEL_TYPE.MODEL_PAGE,
-        target: page,
-        action: SUPPORTED_ACTION_TYPE.ACTION_PAGE_RENAME,
-      };
-      activity = await crowi.activityService.updateByParameters(activityId, parameters);
-    }
-    catch (err) {
-      logger.error('Update activity failed', err);
-      return res.apiv3Err(err);
-    }
+    const activityId = res.locals.activity._id;
+    const parameters = {
+      targetModel: SUPPORTED_TARGET_MODEL_TYPE.MODEL_PAGE,
+      target: page,
+      action: SUPPORTED_ACTION_TYPE.ACTION_PAGE_RENAME,
+    };
+    activtyEvent.emit('update', activityId, parameters, page);
 
-    try {
-      await crowi.inAppNotificationService.createInAppNotification(activity, page);
-    }
-    catch (err) {
-      logger.error('Create InAppNotification failed', err);
-      return res.apiv3Err(err);
-    }
+    return res.apiv3(result);
   });
 
   /**

+ 9 - 21
packages/app/src/server/routes/login-passport.js

@@ -9,7 +9,9 @@ module.exports = function(crowi, app) {
   const passport = require('passport');
   const ExternalAccount = crowi.model('ExternalAccount');
   const passportService = crowi.passportService;
-  const activityService = crowi.activityService;
+
+  const activtyEvent = crowi.event('activity');
+
   const ApiResponse = require('../util/apiResponse');
 
   /**
@@ -30,17 +32,10 @@ module.exports = function(crowi, app) {
     // remove session.redirectTo
     delete req.session.redirectTo;
 
-    // return response first
-    res.safeRedirect(redirectTo);
+    const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGIN_SUCCESS };
+    activtyEvent.emit('update', res.locals.activity._id, parameters);
 
-    try {
-      const activityId = res.locals.activity._id;
-      const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGIN_SUCCESS };
-      await activityService.updateByParameters(activityId, parameters);
-    }
-    catch (err) {
-      logger.error('Update activity failed', err);
-    }
+    return res.safeRedirect(redirectTo);
   };
 
   /**
@@ -51,17 +46,10 @@ module.exports = function(crowi, app) {
   const loginFailureHandler = async(req, res, message) => {
     req.flash('errorMessage', message || req.t('message.sign_in_failure'));
 
-    // return response first
-    res.redirect('/login');
+    const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGIN_FAILURE };
+    activtyEvent.emit('update', res.locals.activity._id, parameters);
 
-    try {
-      const activityId = res.locals.activity._id;
-      const parameters = { action: SUPPORTED_ACTION_TYPE.ACTION_LOGIN_FAILURE };
-      await activityService.updateByParameters(activityId, parameters);
-    }
-    catch (err) {
-      logger.error('Update activity failed', err);
-    }
+    return res.redirect('/login');
   };
 
   /**