|
|
@@ -1,54 +1,40 @@
|
|
|
/**
|
|
|
* importer
|
|
|
*/
|
|
|
-
|
|
|
-module.exports = function(crowi) {
|
|
|
+module.exports = crowi => {
|
|
|
'use strict';
|
|
|
|
|
|
- var debug = require('debug')('growi:lib:importer')
|
|
|
- , request = require('request')
|
|
|
- , esa = require('esa-nodejs')
|
|
|
- , esaClient = {}
|
|
|
- , Page = crowi.model('Page')
|
|
|
- , User = crowi.model('User')
|
|
|
- , pageRouter = require('../routes/page')(crowi)
|
|
|
- , crowi = crowi
|
|
|
- , config = crowi.getConfig()
|
|
|
- , importer = {}
|
|
|
- ;
|
|
|
-
|
|
|
- /**
|
|
|
- * Initialize importer
|
|
|
- */
|
|
|
- function initialize() {
|
|
|
- esaClient = esa({
|
|
|
- team: config.crowi['importer:esa:team_name'],
|
|
|
- accessToken: config.crowi['importer:esa:access_token'],
|
|
|
- });
|
|
|
- debug('esa client is initialized');
|
|
|
- }
|
|
|
+ const debug = require('debug')('growi:lib:importer');
|
|
|
+ const request = require('request');
|
|
|
+ const esa = require('esa-nodejs');
|
|
|
+ const Page = crowi.model('Page');
|
|
|
+ const User = crowi.model('User');
|
|
|
+ const pageRouter = require('../routes/page')(crowi);
|
|
|
+ const config = crowi.getConfig();
|
|
|
+ let importer = {};
|
|
|
+ let esaClient = {};
|
|
|
|
|
|
/**
|
|
|
* Get teams from esa (Promise wrapper)
|
|
|
*/
|
|
|
- function getTeamsFromEsa() {
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- esaClient.api.team(function(err, res) {
|
|
|
+ const getTeamsFromEsa = () => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ esaClient.api.team((err, res) => {
|
|
|
if (err) {
|
|
|
debug(err);
|
|
|
reject(err);
|
|
|
}
|
|
|
resolve(res);
|
|
|
- })
|
|
|
+ });
|
|
|
});
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* Get posts from esa (Promise wrapper)
|
|
|
*/
|
|
|
- function getPostsFromEsa() {
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
- esaClient.api.posts(function(err, res) {
|
|
|
+ const getPostsFromEsa = () => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ esaClient.api.posts((err, res) => {
|
|
|
if (err) {
|
|
|
debug(err);
|
|
|
reject(err);
|
|
|
@@ -56,66 +42,76 @@ module.exports = function(crowi) {
|
|
|
resolve(res);
|
|
|
});
|
|
|
});
|
|
|
- }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Initialize importer
|
|
|
+ */
|
|
|
+ importer.initialize = () => {
|
|
|
+ esaClient = esa({
|
|
|
+ team: config.crowi['importer:esa:team_name'],
|
|
|
+ accessToken: config.crowi['importer:esa:access_token'],
|
|
|
+ });
|
|
|
+ debug('esa client is initialized');
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* Import post data from esa to GROWI
|
|
|
*/
|
|
|
- importer.importAllPostsFromEsa = function(user) {
|
|
|
+ importer.importAllPostsFromEsa = user => {
|
|
|
/* Get posts from esa */
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
getPostsFromEsa()
|
|
|
- .then(function(res) {
|
|
|
+ .then(res => {
|
|
|
/* Import to GROWI */
|
|
|
- var basePage = '/';
|
|
|
- var ignoreNotFound = true;
|
|
|
- res.body.posts.forEach(function(post) {
|
|
|
- var pagePath = basePage + [post.category, post.name].filter(v => v).join('/')
|
|
|
+ const basePage = '/';
|
|
|
+ const ignoreNotFound = true;
|
|
|
+ res.body.posts.forEach(post => {
|
|
|
+ const pagePath = basePage + [post.category, post.name].filter(v => v).join('/');
|
|
|
Page.findPage(pagePath, user, null, ignoreNotFound)
|
|
|
- .then(function(data) {
|
|
|
+ .then(data => {
|
|
|
if (data !== null) {
|
|
|
reject('Page exists');
|
|
|
}
|
|
|
return Page.create(pagePath, post.body_md, user, { grant: Page.GRANT_PUBLIC, grantUserGroupId: null });
|
|
|
})
|
|
|
- .then(function(createdPage) {
|
|
|
+ .then(createdPage => {
|
|
|
if (!createdPage) {
|
|
|
reject('Page exists');
|
|
|
}
|
|
|
debug('Crete page: ' + createdPage);
|
|
|
resolve();
|
|
|
})
|
|
|
- .catch(function(err) {
|
|
|
+ .catch(err => {
|
|
|
debug(err);
|
|
|
reject(err);
|
|
|
- })
|
|
|
+ });
|
|
|
});
|
|
|
})
|
|
|
- .catch(function(err) {
|
|
|
+ .catch(err => {
|
|
|
debug(err);
|
|
|
reject(err);
|
|
|
});
|
|
|
});
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
* Import post data from esa to GROWI
|
|
|
*/
|
|
|
- importer.testConnectionToEsa = function() {
|
|
|
- return new Promise(function(resolve, reject) {
|
|
|
+ importer.testConnectionToEsa = () => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
getTeamsFromEsa()
|
|
|
- .then(function(res) {
|
|
|
+ .then(res => {
|
|
|
resolve();
|
|
|
})
|
|
|
- .catch(function(err) {
|
|
|
+ .catch(err => {
|
|
|
debug(err);
|
|
|
reject(err);
|
|
|
});
|
|
|
});
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
- initialize();
|
|
|
- importer.esaClient = esaClient;
|
|
|
+ importer.initialize();
|
|
|
|
|
|
return importer;
|
|
|
};
|