Updated algolia for the order.
This commit is contained in:
parent
2fb29290f1
commit
26717a14a6
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user