//-------------------------- JSON_beginning --------------------------
const books = [
{
_id: { oid: "1" },
programming_language: ["nodejs"],
chatbot_platform: ["Google Dialogflow"],
link: "https://www.amazon.com/1"
},
{
_id: { oid: "2" },
programming_language: ["python"],
chatbot_platform: ["NLP"],
link: "https://www.amazon.com/2"
},
{
_id: { oid: "3" },
programming_language: ["c#"],
chatbot_platform: ["Microsoft Bot Framework"],
link: "https://www.amazon.com/3"
},
{
_id: { oid: "4" },
programming_language: ["python", "java"],
chatbot_platform: ["NLP", "Rasa", "Google Dialogflow", "Microsoft Bot Framework"],
link: "https://www.amazon.com/4"
},
{
_id: { oid: "5" },
programming_language: ["ruby"],
chatbot_platform: [""],
link: "https://www.amazon.com/5"
},
{
_id: { oid: "6" },
programming_language: ["typescript"],
chatbot_platform: ["Microsoft Bot Framework"],
link: "https://www.amazon.com/6"
},
{
_id: { oid: "7" },
programming_language: ["python"],
chatbot_platform: ["NLP"],
link: "https://www.amazon.com/7"
},
{
_id: { oid: "8" },
programming_language: ["java", "nodejs"],
chatbot_platform: ["Twilio", "Alexa Skills", "Google Dialogflow", "Microsoft Bot Framework", "Chatfuel"],
link: "https://www.amazon.com/8"
},
{
_id: { oid: "9" },
programming_language: [""],
chatbot_platform: ["Google Dialogflow"],
link: "https://www.amazon.com/9"
},
{
_id: { oid: "10" },
programming_language: ["nodejs"],
chatbot_platform: ["Amazon Lex"],
link: "https://www.amazon.com/10"
},
{
_id: { oid: "11" },
programming_language: ["c#"],
chatbot_platform: ["Microsoft Bot Framework"],
link: "https://www.amazon.com/111"
}
]
//-------------------------- JSON_end --------------------------
// Inside those 2 variables put any programming language and/or any platform contained in JSON object, or none
let uProgLang = "";
let uPlatform = "";
console.log(` \n ******************************************************************* `);
console.log(' ************************** beginning ****************************** ');
console.log(' ******************************************************************* ');
/* Just add this before for searching through database
const books = await Coupon.find({
$or: [{ programming_language: uProgLang }, { chatbot_platform: uPlatform }],
}); */
// Only programming language selected
const arrayOfObjMatchedProgLang = books.filter(function (k) {
if(uProgLang !=="")
return k.programming_language.includes(uProgLang);
}).map(function (l) { return l.link });
console.log(arrayOfObjMatchedProgLang);
console.log(' ------------------------------------------------------------------- ');
// Only platform selected
const arrayOfObjMatchedPlatform = books.filter(function (k) {
if(uPlatform !=="")
return k.chatbot_platform.includes(uPlatform);
}).map(function (l) { return l.link });
console.log(arrayOfObjMatchedPlatform);
console.log(' ------------------------------------------------------------------- ');
// Both programming language & platform selected
let intersection = arrayOfObjMatchedProgLang.filter(x => arrayOfObjMatchedPlatform.includes(x));
console.log(intersection);
console.log(` \n ******************** Printing text with links *********************\n `);
// ***** Printing text with links *****
let responseText;
// Both selected
if (uProgLang && uPlatform)
responseText = `Books for ${uProgLang} programming language with ${uPlatform} chatbot platform is available on:\n` +intersection.join("\n");
// Only programming language
else if (uProgLang)
responseText = `Books for ${uProgLang} programming language is available on:\n` +arrayOfObjMatchedProgLang.join("\n");
// Only platform
else if (uPlatform)
responseText = `Books for ${uPlatform} chatbot platform is available on:\n` +arrayOfObjMatchedPlatform.join("\n");
// Neither one selected
else
responseText = `Here is some random link :) \n`+
`https://ctl.s6img.com/society6/img/5gOI6Pvx09XYIfUVhBXh9qTr1oo/w_700/prints/~artwork/s6-original-art-uploads/society6/uploads/misc/fa0dafda81cb466ca8b06922f36e7690/~~/cute-penguins-a-cute-illustrated-penguin-in-blue-and-white-t-shirt-design-hearts-cool-penguin-dab-prints.jpg`;
console.log(responseText);
console.log(` \n ******************************************************************* `);
console.log(' **************** end - thx for helping people ********************* ');
console.log(' ******************************************************************* ');