Kaynağa Gözat

Merge pull request #1338 from weseek/create-apiV3-update-behavior

Create api v3 update behavior
itizawa 6 yıl önce
ebeveyn
işleme
04b89f97af

+ 1 - 1
src/client/js/components/Admin/Customize/CustomizeBehaviorSetting.jsx

@@ -13,7 +13,7 @@ import AdminCustomizeContainer from '../../../services/AdminCustomizeContainer';
 import CustomizeBehaviorOption from './CustomizeBehaviorOption';
 import CustomizeBehaviorOption from './CustomizeBehaviorOption';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow';
 
 
-const logger = loggerFactory('growi:importer');
+const logger = loggerFactory('growi:Customize');
 
 
 class CustomizeBehaviorSetting extends React.Component {
 class CustomizeBehaviorSetting extends React.Component {
 
 

+ 1 - 1
src/client/js/components/Admin/MarkdownSetting/LineBreakSetting.jsx

@@ -8,7 +8,7 @@ import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 
 import AppContainer from '../../../services/AppContainer';
 import AppContainer from '../../../services/AppContainer';
 
 
-const logger = loggerFactory('growi:importer');
+const logger = loggerFactory('growi:LineBreak');
 
 
 class LineBreakSetting extends React.Component {
 class LineBreakSetting extends React.Component {
 
 

+ 5 - 1
src/client/js/services/AdminCustomizeContainer.js

@@ -71,7 +71,11 @@ export default class AdminCustomizeContainer extends Container {
    * @return {string} Behavior
    * @return {string} Behavior
    */
    */
   async updateCustomizeBehavior() {
   async updateCustomizeBehavior() {
-    // TODO GW-497 create apiV3
+    const response = await this.appContainer.apiv3.put('/customize-setting/behavior', {
+      behaviorType: this.state.currentBehavior,
+    });
+    const { customizedParams } = response.data;
+    return customizedParams;
   }
   }
 
 
 }
 }

+ 45 - 1
src/server/routes/apiv3/customize-setting.js

@@ -1,7 +1,7 @@
 /* eslint-disable no-unused-vars */
 /* eslint-disable no-unused-vars */
 const loggerFactory = require('@alias/logger');
 const loggerFactory = require('@alias/logger');
 
 
-const logger = loggerFactory('growi:routes:apiv3:user-group');
+const logger = loggerFactory('growi:routes:apiv3:customize-setting');
 
 
 const express = require('express');
 const express = require('express');
 
 
@@ -75,5 +75,49 @@ module.exports = (crowi) => {
     }
     }
   });
   });
 
 
+  validator.behavior = [
+    body('behaviorType').isString(),
+  ];
+
+  /**
+   * @swagger
+   *
+   *    /customize-setting/behavior:
+   *      put:
+   *        tags: [CustomizeSetting]
+   *        description: Update behavior
+   *        requestBody:
+   *          required: true
+   *          content:
+   *            application/json:
+   *              schama:
+   *                type: object
+   *                properties:
+   *                  behaviorType:
+   *                    description: type of behavior
+   *                    type: string
+   *      responses:
+   *          200:
+   *            description: Succeeded to update behavior
+   */
+  router.put('/behavior', loginRequiredStrictly, adminRequired, csrf, validator.behavior, ApiV3FormValidator, async(req, res) => {
+    const requestParams = {
+      'customize:behavior': req.body.behaviorType,
+    };
+
+    try {
+      await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
+      const customizedParams = {
+        behaviorType: await crowi.configManager.getConfig('crowi', 'customize:behavior'),
+      };
+      return res.apiv3({ customizedParams });
+    }
+    catch (err) {
+      const msg = 'Error occurred in updating behavior';
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(msg, 'update-behavior-failed'));
+    }
+  });
+
   return router;
   return router;
 };
 };