|
@@ -32,7 +32,7 @@ module.exports = crowi => {
|
|
|
/**
|
|
/**
|
|
|
* Get posts from esa (Promise wrapper)
|
|
* Get posts from esa (Promise wrapper)
|
|
|
*/
|
|
*/
|
|
|
- const getPostsFromEsa = () => {
|
|
|
|
|
|
|
+ const getDataFromEsa = () => {
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
esaClient.api.posts((err, res) => {
|
|
esaClient.api.posts((err, res) => {
|
|
|
if (err) {
|
|
if (err) {
|
|
@@ -44,6 +44,40 @@ module.exports = crowi => {
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Create posts from imported data
|
|
|
|
|
+ */
|
|
|
|
|
+ const createGrowiPages = (pages, user) => {
|
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
|
|
+ const basePage = '/';
|
|
|
|
|
+ const ignoreNotFound = true;
|
|
|
|
|
+ pages.forEach(post => {
|
|
|
|
|
+ const pagePath = basePage + [post.category, post.name].filter(v => v).join('/');
|
|
|
|
|
+ Page.findPage(pagePath, user, null, ignoreNotFound)
|
|
|
|
|
+ .then(data => {
|
|
|
|
|
+ if (data !== null) {
|
|
|
|
|
+ return reject('Page exists');
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!Page.isCreatableName(pagePath)) {
|
|
|
|
|
+ return reject(`Page name '${pagePath}' is not allowed in Growi`);
|
|
|
|
|
+ }
|
|
|
|
|
+ return Page.create(pagePath, post.body_md, user, { grant: Page.GRANT_PUBLIC, grantUserGroupId: null });
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(createdPage => {
|
|
|
|
|
+ if (!createdPage) {
|
|
|
|
|
+ return reject('Page exists');
|
|
|
|
|
+ }
|
|
|
|
|
+ debug('Crete page: ' + createdPage);
|
|
|
|
|
+ return resolve();
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(err => {
|
|
|
|
|
+ debug(err);
|
|
|
|
|
+ return reject(err);
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Initialize importer
|
|
* Initialize importer
|
|
|
*/
|
|
*/
|
|
@@ -56,57 +90,34 @@ module.exports = crowi => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * Import post data from esa to GROWI
|
|
|
|
|
|
|
+ * Import page data from esa to GROWI
|
|
|
*/
|
|
*/
|
|
|
- importer.importAllPostsFromEsa = user => {
|
|
|
|
|
- /* Get posts from esa */
|
|
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
|
|
- getPostsFromEsa()
|
|
|
|
|
- .then(res => {
|
|
|
|
|
- /* Import to GROWI */
|
|
|
|
|
- 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(data => {
|
|
|
|
|
- if (data !== null) {
|
|
|
|
|
- reject('Page exists');
|
|
|
|
|
- }
|
|
|
|
|
- return Page.create(pagePath, post.body_md, user, { grant: Page.GRANT_PUBLIC, grantUserGroupId: null });
|
|
|
|
|
- })
|
|
|
|
|
- .then(createdPage => {
|
|
|
|
|
- if (!createdPage) {
|
|
|
|
|
- reject('Page exists');
|
|
|
|
|
- }
|
|
|
|
|
- debug('Crete page: ' + createdPage);
|
|
|
|
|
- resolve();
|
|
|
|
|
- })
|
|
|
|
|
- .catch(err => {
|
|
|
|
|
- debug(err);
|
|
|
|
|
- reject(err);
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
- })
|
|
|
|
|
- .catch(err => {
|
|
|
|
|
|
|
+ importer.importPagesFromEsa = user => {
|
|
|
|
|
+ return new Promise(async(resolve, reject) => {
|
|
|
|
|
+ const data = await getDataFromEsa();
|
|
|
|
|
+ try {
|
|
|
|
|
+ await createGrowiPages(data.body.posts, user);
|
|
|
|
|
+ return resolve();
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (err) {
|
|
|
debug(err);
|
|
debug(err);
|
|
|
- reject(err);
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ return reject(err);
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * Import post data from esa to GROWI
|
|
|
|
|
|
|
+ * Import page data from esa to GROWI
|
|
|
*/
|
|
*/
|
|
|
importer.testConnectionToEsa = () => {
|
|
importer.testConnectionToEsa = () => {
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
|
getTeamsFromEsa()
|
|
getTeamsFromEsa()
|
|
|
.then(res => {
|
|
.then(res => {
|
|
|
- resolve();
|
|
|
|
|
|
|
+ return resolve();
|
|
|
})
|
|
})
|
|
|
.catch(err => {
|
|
.catch(err => {
|
|
|
debug(err);
|
|
debug(err);
|
|
|
- reject(err);
|
|
|
|
|
|
|
+ return reject(err);
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|