Przeglądaj źródła

imrove comment event

Shun Miyazawa 4 lat temu
rodzic
commit
b5cd99bca4

+ 2 - 2
packages/app/src/server/routes/comment.js

@@ -242,7 +242,7 @@ module.exports = function(crowi, app) {
     let createdComment;
     try {
       createdComment = await Comment.create(pageId, req.user._id, revisionId, comment, position, isMarkdown, replyTo);
-      commentEvent.emit('create', createdComment);
+      commentEvent.emit('create', req.user, createdComment);
     }
     catch (err) {
       logger.error(err);
@@ -379,7 +379,7 @@ module.exports = function(crowi, app) {
         { _id: commentId },
         { $set: { comment: commentStr, isMarkdown, revision } },
       );
-      commentEvent.emit('update', updatedComment);
+      commentEvent.emit('update', req.user, updatedComment);
     }
     catch (err) {
       logger.error(err);

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

@@ -33,7 +33,7 @@ class CommentService {
 
   initCommentEventListeners(): void {
     // create
-    this.commentEvent.on('create', async(savedComment) => {
+    this.commentEvent.on('create', async(user, savedComment) => {
 
       try {
         const Page = getModelSafely('Page') || require('../models/page')(this.crowi);
@@ -45,7 +45,7 @@ class CommentService {
           return;
         }
 
-        const activity = await this.createActivity(savedComment, SUPPORTED_ACTION_TYPE.ACTION_COMMENT_CREATE);
+        const activity = await this.createActivity(user, savedComment.page, SUPPORTED_ACTION_TYPE.ACTION_COMMENT_CREATE);
         await this.createAndSendNotifications(activity, page);
       }
       catch (err) {
@@ -55,10 +55,10 @@ class CommentService {
     });
 
     // update
-    this.commentEvent.on('update', async(updatedComment) => {
+    this.commentEvent.on('update', async(user, updatedComment) => {
       try {
         this.commentEvent.onUpdate();
-        await this.createActivity(updatedComment, SUPPORTED_ACTION_TYPE.ACTION_COMMENT_UPDATE);
+        await this.createActivity(user, updatedComment.page, SUPPORTED_ACTION_TYPE.ACTION_COMMENT_UPDATE);
       }
       catch (err) {
         logger.error('Error occurred while handling the comment update event:\n', err);
@@ -79,11 +79,11 @@ class CommentService {
     });
   }
 
-  private createActivity = async function(comment, action) {
+  private createActivity = async function(user, target, action) {
     const parameters = {
-      user: comment.creator,
+      user: user._id,
       targetModel: SUPPORTED_TARGET_MODEL_TYPE.MODEL_PAGE,
-      target: comment.page,
+      target,
       action,
     };
     const activity = await this.activityService.createByParameters(parameters);

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

@@ -8,6 +8,7 @@ import streamToPromise from 'stream-to-promise';
 
 import { SUPPORTED_TARGET_MODEL_TYPE, SUPPORTED_ACTION_TYPE } from '~/interfaces/activity';
 import { Ref } from '~/interfaces/common';
+import { V5ConversionErrCode } from '~/interfaces/errors/v5-conversion-error';
 import { HasObjectId } from '~/interfaces/has-object-id';
 import {
   IPage, IPageInfo, IPageInfoForEntity, IPageWithMeta,
@@ -32,7 +33,6 @@ import { PageRedirectModel } from '../models/page-redirect';
 import { serializePageSecurely } from '../models/serializers/page-serializer';
 import Subscription from '../models/subscription';
 import { V5ConversionError } from '../models/vo/v5-conversion-error';
-import { V5ConversionErrCode } from '~/interfaces/errors/v5-conversion-error';
 
 const debug = require('debug')('growi:services:page');
 
@@ -2233,6 +2233,7 @@ class PageService {
 
   private async createAndSendNotifications(page, user, action) {
     const { activityService, inAppNotificationService } = this.crowi;
+    console.log(user);
 
     const snapshot = stringifySnapshot(page);