Răsfoiți Sursa

qiita importer connection test is conpleted

yusuketk 7 ani în urmă
părinte
comite
6d245ab60b
2 a modificat fișierele cu 56 adăugiri și 51 ștergeri
  1. 5 16
      lib/util/importer.js
  2. 51 35
      lib/util/restQiitaAPI.js

+ 5 - 16
lib/util/importer.js

@@ -6,9 +6,9 @@ module.exports = crowi => {
 
   const logger = require('@alias/logger')('growi:util:importer');
   const esa = require('esa-nodejs');
-  const qiita = require('./restQiitaAPI');
   const config = crowi.getConfig();
   const createGrowiPages = require('./createGrowiPagesFromImports')(crowi);
+
   let importer = {};
   let esaClient = {};
 
@@ -171,8 +171,11 @@ module.exports = crowi => {
    */
   importer.testConnectionToQiita = () => {
     return new Promise(async(resolve, reject) => {
+      const team = config.crowi['importer:qiita:team_name'];
+      const token = config.crowi['importer:qiita:access_token'];
+      const restQiitaAPI = require('./restQiitaAPI')(team, token)
       try {
-        await getTeamNameFromQiita();
+        await restQiitaAPI.getQiita();
         resolve();
       }
       catch (err) {
@@ -195,20 +198,6 @@ module.exports = crowi => {
     });
   };
 
-    /**
-   * Get teams from qiita (Promise wrapper)
-   */
-  const getTeamNameFromQiita = () => {
-    return new Promise((resolve, reject) => {
-      esaClient.api.team((err, res) => { //QIITA
-        if (err) {
-          return reject(err);
-        }
-        resolve(res);
-      });
-    });
-  };
-
   // initialize when server starts
   importer.initialize();
 

+ 51 - 35
lib/util/restQiitaAPI.js

@@ -2,45 +2,61 @@
 
 // Qiita API v2 documant https://qiita.com/api/v2/docs
 
-const https = require('https');
-const team = 'team';
-const token = 'token';
+module.exports = function(Team, Token) {
+  var restQiitaAPI = {};
+  const https = require('https');
+  const team = Team;
+  const token = Token;
 
-var options = {
-  protocol: 'https:',
-  host: `${team}.qiita.com`,
-  method: 'GET',
-  headers: {
-    'Content-Type': 'application/json',
-    'authorization': `Bearer ${token}`
-  }
-};
+  var options = {
+    protocol: 'https:',
+    host: `${team}.qiita.com`,
+    method: 'GET',
+    headers: {
+      'Content-Type': 'application/json',
+      'authorization': `Bearer ${token}`
+    }
+  };
 
-function restAPI(path) {
-  options.path = `/api/v2/${path}`;
-  const req = https.request(options, (res) => {
-      res.on('data', (chunk) => {
-          console.log(`${chunk}`);
-          return chunk;
+  function restAPI(path, options) {
+    return new Promise((resolve, reject) => {
+      options.path = `/api/v2/${path}`;
+      const req = https.request(options, (res) => {
+        res.on('data', (chunk) => {
+            // console.log(`${chunk}`);
+            console.log(`${chunk}`);
+            resolve(chunk);
+        });
       });
-  })
 
-  req.on('error', (e) => {
-    console.error(`problem with request: ${e.message}`);
-  });
+      req.on('error', (e) => {
+        console.error(`problem with request: ${e.message}`);
+      });
 
-  req.end();
-};
+      req.end();
+    });
+  };
 
-return {
-  // tags: restAPI('tags'),
-  // templates: restAPI('templates'),
-  // projects: restAPI('projects'),
-  // users: restAPI('users'),
-  // comments: restAPI(`items/${item_id}/comments`),
-  // project_comments: restAPI(`projects/${project_id}/comments`),
-  // itemreactions: restAPI(`items/${item_id}/reactions`),
-  // comment_reactions: restAPI(`comments/${comment_id}/reactions`),
-  // project_reactions: restAPI(`projects/${project_id}/reactions`),
-  items: restAPI('items')
+  restQiitaAPI.getQiita = function() {
+    return new Promise((resolve, reject) => {
+      restAPI('users', options)
+      .then(function(user){
+        resolve(JSON.parse(user.toString()));
+      })
+      .catch(function(err){
+        reject(err);
+      })
+    });
+  };
+      // tags: restAPI('tags'),
+      // templates: restAPI('templates'),
+      // projects: restAPI('projects'),
+      // users: restAPI('users'),
+      // comments: restAPI(`items/${item_id}/comments`),
+      // project_comments: restAPI(`projects/${project_id}/comments`),
+      // itemreactions: restAPI(`items/${item_id}/reactions`),
+      // comment_reactions: restAPI(`comments/${comment_id}/reactions`),
+      // project_reactions: restAPI(`projects/${project_id}/reactions`),
+      // items: restAPI('items'),
+  return restQiitaAPI;
 }