Browse Source

check subscribeRule

Shun Miyazawa 4 years ago
parent
commit
bd39212d96
1 changed files with 11 additions and 1 deletions
  1. 11 1
      packages/app/src/server/routes/apiv3/pages.js

+ 11 - 1
packages/app/src/server/routes/apiv3/pages.js

@@ -2,6 +2,8 @@ import { pagePathUtils } from '@growi/core';
 import loggerFactory from '~/utils/logger';
 
 import Subscription, { STATUS_SUBSCRIBE } from '~/server/models/subscription';
+import InAppNotificationSettings from '~/server/models/in-app-notification-settings';
+import { subscribeRuleNames } from '~/interfaces/in-app-notification-settings';
 
 const logger = loggerFactory('growi:routes:apiv3:pages'); // eslint-disable-line no-unused-vars
 const express = require('express');
@@ -323,7 +325,15 @@ module.exports = (crowi) => {
     // TODO: 80103
     // create subscription
     try {
-      await Subscription.subscribeByPageId(req.user._id, createdPage._id, STATUS_SUBSCRIBE);
+      const query = { userId: req.user.id };
+      const inAppNotificationSettings = await InAppNotificationSettings.findOne(query);
+      if (inAppNotificationSettings) {
+        const targetRuleName = subscribeRuleNames.PAGE_CREATE;
+        const subscribeRule = inAppNotificationSettings.subscribeRules.find(subscribeRule => subscribeRule.name === targetRuleName);
+        if (subscribeRule.isEnabled) {
+          await Subscription.subscribeByPageId(req.user._id, createdPage._id, STATUS_SUBSCRIBE);
+        }
+      }
     }
     catch (err) {
       logger.error('Failed to create subscription document', err);