itizawa 6 лет назад
Родитель
Сommit
2c01a9e4bf

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

@@ -234,7 +234,11 @@ export default class AdminCustomizeContainer extends Container {
    * @return {string} Customize html header
    */
   async updateCustomizeHeader() {
-    // TODO GW-601 create apiV3
+    const response = await this.appContainer.apiv3.put('/customize-setting/customize-header', {
+      customizeHeader: this.state.currentCustomizeHeader,
+    });
+    const { customizedParams } = response.data;
+    return customizedParams;
   }
 
   /**

+ 22 - 2
src/server/routes/apiv3/customize-setting.js

@@ -10,8 +10,6 @@ const router = express.Router();
 const { body } = require('express-validator/check');
 const ErrorV3 = require('../../models/vo/error-apiv3');
 
-const validator = {};
-
 /**
  * @swagger
  *  tags:
@@ -69,6 +67,9 @@ module.exports = (crowi) => {
       body('isEnabledAttachTitleHeader').isBoolean(),
       body('recentCreatedLimit').isInt(),
     ],
+    customizeHeader: [
+      body('customizeHeader').isString(),
+    ],
     customizeCss: [
       body('customizeCss').isString(),
     ],
@@ -242,6 +243,25 @@ module.exports = (crowi) => {
     }
   });
 
+  // TODO swagger
+  router.put('/customize-header', loginRequiredStrictly, adminRequired, csrf, validator.customizeHeader, ApiV3FormValidator, async(req, res) => {
+    const requestParams = {
+      'customize:header': req.body.customizeHeader,
+    };
+    try {
+      await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
+      const customizedParams = {
+        customizeCss: await crowi.configManager.getConfig('crowi', 'customize:header'),
+      };
+      return res.apiv3({ customizedParams });
+    }
+    catch (err) {
+      const msg = 'Error occurred in updating customizeHeader';
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(msg, 'update-customizeHeader-failed'));
+    }
+  });
+
   /**
    * @swagger
    *