itizawa 6 лет назад
Родитель
Сommit
7a092a913e

+ 21 - 5
src/client/js/services/AdminNotificationContainer.js

@@ -1,5 +1,11 @@
 import { Container } from 'unstated';
 import { Container } from 'unstated';
 
 
+import loggerFactory from '@alias/logger';
+
+import { toastError } from '../util/apiNotification';
+
+const logger = loggerFactory('growi:services:AdminNotificationContainer');
+
 /**
 /**
  * Service container for admin Notification setting page (NotificationSetting.jsx)
  * Service container for admin Notification setting page (NotificationSetting.jsx)
  * @extends {Container} unstated Container
  * @extends {Container} unstated Container
@@ -34,11 +40,21 @@ export default class AdminNotificationContainer extends Container {
    * Retrieve notificationData
    * Retrieve notificationData
    */
    */
   async retrieveNotificationData() {
   async retrieveNotificationData() {
-    const response = await this.appContainer.apiv3.get('/notification-setting/', {
-
-    });
-
-    return response;
+    try {
+      const response = await this.appContainer.apiv3.get('/notification-setting/');
+      const { notificationParams } = response.data;
+
+      this.setState({
+        webhookUrl: notificationParams.webhookUrl || '',
+        isIncomingWebhookPrioritized: notificationParams.isIncomingWebhookPrioritized || false,
+        slackToken: notificationParams.slackToken || '',
+      });
+
+    }
+    catch (err) {
+      logger.error(err);
+      toastError(new Error('Failed to fetch data'));
+    }
   }
   }
 
 
   /**
   /**

+ 7 - 2
src/server/routes/apiv3/notification-setting.js

@@ -63,9 +63,14 @@ module.exports = (crowi) => {
 
 
   const { ApiV3FormValidator } = crowi.middlewares;
   const { ApiV3FormValidator } = crowi.middlewares;
 
 
+  // TODO swagger
   router.get('/', loginRequiredStrictly, adminRequired, async(req, res) => {
   router.get('/', loginRequiredStrictly, adminRequired, async(req, res) => {
-    console.log('here is apiv3');
-    return res.apiv3({ });
+    const notificationParams = {
+      webhookUrl: await crowi.configManager.getConfig('notification', 'slack:incomingWebhookUrl'),
+      isIncomingWebhookPrioritized: await crowi.configManager.getConfig('notification', 'slack:isIncomingWebhookPrioritized'),
+      slackToken: await crowi.configManager.getConfig('notification', 'slack:token'),
+    };
+    return res.apiv3({ notificationParams });
   });
   });