Updated algolia for the order.

This commit is contained in:
Satbir Singh 2020-05-29 12:42:35 +05:30
parent 2fb29290f1
commit 26717a14a6

View File

@ -1,8 +1,8 @@
var https = require("https"); var https = require("https");
const algoliasearch = require("algoliasearch"); const algoliasearch = require('algoliasearch');
const client = algoliasearch("AZ2Z9CJSJ0", "e92300d4e8dbaf2cbaa9ebbbeb4e06e6"); const client = algoliasearch('AZ2Z9CJSJ0', 'e92300d4e8dbaf2cbaa9ebbbeb4e06e6');
const index = client.initIndex("test_appsmith"); const index = client.initIndex('test_appsmith');
var options = { var options = {
headers: { headers: {
@ -14,32 +14,28 @@ var options = {
console.log("Loading function"); console.log("Loading function");
function getPage(pageId) { function getPage(pageId) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
https.get( https.get(`https://api-beta.gitbook.com/v1/spaces/-Lzuzdhj8LjrQPaeyCxr/content/v/master/id/${pageId}?format=markdown`, options, (res) => {
`https://api-beta.gitbook.com/v1/spaces/-Lzuzdhj8LjrQPaeyCxr/content/v/master/id/${pageId}?format=markdown`, res.setEncoding('utf8');
options, let rawData = '';
res => { res.on('data', (chunk) => { rawData += chunk; });
res.setEncoding("utf8"); res.on('end', () => {
let rawData = ""; try {
res.on("data", chunk => { const parsedData = JSON.parse(rawData);
rawData += chunk; resolve(parsedData);
}); } catch (e) {
res.on("end", () => { reject(e)
try { console.error(e.message);
const parsedData = JSON.parse(rawData); }
resolve(parsedData); });
} catch (e) { })
reject(e);
console.error(e.message);
}
});
},
);
}); });
} }
const pages = []; const pages = []
function pushChildPages(masterPage) { function pushChildPages(masterPage) {
if (masterPage.pages) { if (masterPage.pages) {
@ -52,65 +48,94 @@ function pushChildPages(masterPage) {
} }
} }
exports.handler = async event => { const orderArr = [{
path: "master/quick-start",
order: 0,
}, {
path: "master/core-concepts/building-the-ui",
order: 1
}, {
path: "master/core-concepts/building-the-ui/displaying-api-data",
order: 2
}, {
path: "master/core-concepts/apis",
order: 3
}, {
path: "master/core-concepts/apis/taking-inputs-from-widgets",
order: 4
}]
function swap(arr, index1, index2) {
let x = arr[index1]
arr[index1] = arr[index2]
arr[index2] = x;
}
exports.handler = async (event) => {
const response = await new Promise((resolve, reject) => { const response = await new Promise((resolve, reject) => {
const req = https.get( const req = https.get("https://api-beta.gitbook.com/v1/spaces/-Lzuzdhj8LjrQPaeyCxr/content", options, (res) => {
"https://api-beta.gitbook.com/v1/spaces/-Lzuzdhj8LjrQPaeyCxr/content", res.setEncoding('utf8');
options, let rawData = '';
res => { res.on('data', (chunk) => { rawData += chunk; });
res.setEncoding("utf8"); res.on('end', () => {
let rawData = ""; try {
res.on("data", chunk => { const parsedData = JSON.parse(rawData);
rawData += chunk; let masterPage = parsedData.variants[0].page;
});
res.on("end", () => {
try {
const parsedData = JSON.parse(rawData);
let masterPage = parsedData.variants[0].page; pushChildPages(masterPage);
masterPage.pages = undefined;
pushChildPages(masterPage); pages.push(masterPage);
masterPage.pages = undefined;
pages.push(masterPage); let promises = pages.map(page => page.uid).map(getPage);
Promise.all(promises).then(updatedPages => {
updatedPages.forEach((page, index) => {
page.path = pages[index].path;
page.pages = undefined;
page.objectID = page.uid;
if (page.path === "master/changelog") {
page.document = undefined
}
});
let promises = pages.map(page => page.uid).map(getPage); orderArr.forEach(order => {
Promise.all(promises).then(updatedPages => { let index = updatedPages.findIndex(i => i.path === order.path)
updatedPages.forEach((page, index) => { if (index !== -1) {
page.path = pages[index].path; swap(updatedPages, index, order.order)
page.pages = undefined; }
page.objectID = page.uid; })
});
updatedPages = updatedPages.map((item, index) => { return { ...item, defaultOrder: index } })
// resolve({
// statusCode: 200,
// body: JSON.stringify(updatedPages)
// })
index.replaceAllObjects(updatedPages, {
autoGenerateObjectIDIfNotExist: true
}).then(({ objectIDs }) => {
console.log(objectIDs);
resolve({ resolve({
statusCode: 200, statusCode: 200,
body: JSON.stringify(updatedPages), body: JSON.stringify(updatedPages)
}); })
}).catch(e => {
// index.replaceAllObjects(updatedPages, { reject({
// autoGenerateObjectIDIfNotExist: true statusCode: 500,
// }).then(({ objectIDs }) => { body: 'Algolia upload failed.'
// console.log(objectIDs); })
// resolve({ })
// statusCode: 200, });
// body: JSON.stringify(updatedPages) } catch (e) {
// }) reject({
// }).catch(e => { statusCode: 500,
// reject({ body: 'Most probably gitbook getPage apis failed'
// statusCode: 500, })
// body: 'Algolia upload failed.' }
// }) });
// }) });
});
} catch (e) {
reject({
statusCode: 500,
body: "Most probably gitbook getPage apis failed",
});
}
});
},
);
}); });
return response; return response;