熊谷洸介(Kousuke Kumagai) 6 лет назад
Родитель
Сommit
26c69548b8

+ 1 - 1
src/client/js/components/Admin/Importer.jsx

@@ -65,7 +65,7 @@ class Importer extends React.Component {
     try {
       const params = {
         'importer:esa:team_name': this.state.esaTeamName,
-        'importer:esa:access_token': this.state.esaaAccessToken,
+        'importer:esa:access_token': this.state.esaAccessToken,
       };
       this.props.appContainer.apiPost('/admin/settings/importerEsa', params);
       toastSuccess('Update');

+ 23 - 6
src/server/routes/admin.js

@@ -813,6 +813,8 @@ module.exports = function(crowi, app) {
   actions.importer = {};
   actions.importer.api = api;
   api.validators = {};
+  api.validators.importer = {};
+
   actions.importer.index = function(req, res) {
     const settingForm = configManager.getConfigByPrefix('crowi', 'importer:');
     return res.render('admin/importer', {
@@ -820,17 +822,23 @@ module.exports = function(crowi, app) {
     });
   };
 
-  api.validators.add = function() {
+  api.validators.importer.esa = function() {
     const validator = [
-      check('esaAccessToken').not().isEmpty(),
-      check('esaTeamName').not().isEmpty(),
-      check('qiitaAccessToken').not().isEmpty(),
-      check('qiitaTeamName').not().isEmpty(),
+      check('importer:esa:team_name').not().isEmpty().withMessage('Error. Empty esa:team_name'),
+      check('importer:esa:access_token').not().isEmpty().withMessage('Error. Empty esa:access_token'),
     ];
     return validator;
+  };
 
+  api.validators.importer.qiita = function() {
+    const validator = [
+      check('importer:qiita:team_name').not().isEmpty().withMessage('Error. Empty qiita:team_name'),
+      check('importer:qiita:access_token').not().isEmpty().withMessage('Error. Empty qiita:access_token'),
+    ];
+    return validator;
   };
 
+
   actions.api = {};
   actions.api.appSetting = async function(req, res) {
     const form = req.form.settingForm;
@@ -1192,7 +1200,7 @@ module.exports = function(crowi, app) {
       // return res.json(ApiResponse.error('Invalid comment.'));
       // return res.status(422).json({ errors: errors.array() });
       console.log('validator', errors);
-      return res.json(ApiResponse.error('空欄の項目があります'));
+      return res.json(ApiResponse.error('Esaの空欄の項目があります'));
     }
 
     await configManager.updateConfigsInTheSameNamespace('crowi', form);
@@ -1209,6 +1217,15 @@ module.exports = function(crowi, app) {
   actions.api.importerSettingQiita = async(req, res) => {
     const form = req.body;
 
+    const { validationResult } = require('express-validator');
+    const errors = validationResult(req);
+    if (!errors.isEmpty()) {
+      // return res.json(ApiResponse.error('Invalid comment.'));
+      // return res.status(422).json({ errors: errors.array() });
+      console.log('validator', errors);
+      return res.json(ApiResponse.error('Qiitaの空欄の項目があります'));
+    }
+
     await configManager.updateConfigsInTheSameNamespace('crowi', form);
     importer.initializeQiitaClient(); // let it run in the back aftert res
 

+ 2 - 2
src/server/routes/index.js

@@ -142,8 +142,8 @@ module.exports = function(crowi, app) {
 
   // importer management for admin
   app.get('/admin/importer'                , loginRequired() , adminRequired , admin.importer.index);
-  app.post('/_api/admin/settings/importerEsa' ,  loginRequired() , adminRequired , csrf, admin.importer.api.validators.add(),admin.api.importerSettingEsa);
-  app.post('/_api/admin/settings/importerQiita' ,loginRequired() , adminRequired , csrf , admin.importer.api.validators.add(), admin.api.importerSettingQiita);
+  app.post('/_api/admin/settings/importerEsa' ,  loginRequired() , adminRequired , csrf, admin.importer.api.validators.importer.esa(),admin.api.importerSettingEsa);
+  app.post('/_api/admin/settings/importerQiita' ,loginRequired() , adminRequired , csrf , admin.importer.api.validators.importer.qiita(), admin.api.importerSettingQiita);
   app.post('/_api/admin/import/esa'        , loginRequired() , adminRequired , admin.api.importDataFromEsa);
   app.post('/_api/admin/import/testEsaAPI' , loginRequired() , adminRequired , csrf, admin.api.testEsaAPI);
   app.post('/_api/admin/import/qiita'        , loginRequired() , adminRequired , admin.api.importDataFromQiita);