From a14a7f655fbbe22c01488e47b77b8f43f18a815b Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Wed, 23 May 2018 10:09:11 +0200 Subject: [PATCH] Cloud Require Implemented --- CloudVM/CloudRequire.js | 68 +++++++++++++++++++++++++++++++++++++++++ CloudVM/CloudSupport.js | 18 ++++++++--- Project.njsproj | 3 ++ 3 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 CloudVM/CloudRequire.js diff --git a/CloudVM/CloudRequire.js b/CloudVM/CloudRequire.js new file mode 100644 index 000000000..871c0adee --- /dev/null +++ b/CloudVM/CloudRequire.js @@ -0,0 +1,68 @@ +function newCloudRequire(BOT, DEBUG_MODULE) { + + const FULL_LOG = true; + const LOG_FILE_CONTENT = false; + + const MODULE_NAME = "Cloud Require"; + + let bot = BOT; + + const logger = DEBUG_MODULE.newDebugLog(); + logger.bot = bot; + logger.fileName = MODULE_NAME; + logger.initialize(); + + let thisObject = { + requireBot: requireBot, + requireCommons: requireCommons + }; + + return thisObject; + + function requireBot(pCloudStorage, pProcessConfig, callBackFunction) { + + try { + + if (FULL_LOG === true) { logger.write("[INFO] requireBot -> Entering function."); } + + let filePath = "Bots" + "/" + bot.devTeam + "/" + bot.repo + "/" + pProcessConfig.name + "/" + "User.Bot.js"; + + downloadModule(filePath, onDownloaded) + + function onDownloaded(pModule) { + + callBackFunction(global.DEFAULT_OK_RESPONSE, pModule); + return; + + } + + } catch (err) { + logger.write("[ERROR] requireBot -> err = " + err.message); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } + + function requireCommons(pCloudStorage, callBackFunction) { + + try { + + if (FULL_LOG === true) { logger.write("[INFO] requireCommons -> Entering function."); } + + let filePath = bot.devTeam + "/" + bot.repo + "/" + "Commons.js"; + + downloadModule(filePath, onDownloaded) + + function onDownloaded(pModule) { + + callBackFunction(global.DEFAULT_OK_RESPONSE, pModule); + return; + + } + + } catch (err) { + logger.write("[ERROR] requireCommons -> err = " + err.message); + callBackFunction(global.DEFAULT_FAIL_RESPONSE); + } + } + +}; \ No newline at end of file diff --git a/CloudVM/CloudSupport.js b/CloudVM/CloudSupport.js index abd9f3f5c..c5953fce5 100644 --- a/CloudVM/CloudSupport.js +++ b/CloudVM/CloudSupport.js @@ -128,20 +128,30 @@ function webRequire(pModulePath) { MODULE.newDataDependencies = newDataDependencies; return MODULE; } + case './CloudRequire': { + + let MODULE = {}; + MODULE.newCloudRequire = newCloudRequire; + return MODULE; + } default: { console.log(pModulePath + " not found. "); } } } -function downloadModule(pPath) { +function downloadModule(pPath, callBackFunction) { /* We will need this to load individual bots modules. */ - Requirejs(["Scripts/DummyWeb"], function (DummyWeb) { - console.log("Dummy Web Loaded"); - }); + Requirejs([pPath], onRequired); + function onRequired(pModule) { + + console.log(pPath + " downloaded."); + + callBackFunction(pModule); + } } diff --git a/Project.njsproj b/Project.njsproj index 00558fbec..7c8d10615 100644 --- a/Project.njsproj +++ b/Project.njsproj @@ -32,6 +32,9 @@ + + Code + Code