diff --git a/src/DailyFiles.js b/src/DailyFiles.js index c7cbf8314..cf94b1fe2 100644 --- a/src/DailyFiles.js +++ b/src/DailyFiles.js @@ -1,392 +1,327 @@ - -function newDailyFiles() { +  +function newDailyFiles () { + const MODULE_NAME = 'Daily Files' + const INFO_LOG = false + const ERROR_LOG = true + const logger = newWebDebugLog() + logger.fileName = MODULE_NAME - const MODULE_NAME = "Daily Files"; - const INFO_LOG = false; - const ERROR_LOG = true; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; + let thisObject = { + getFileCursor: getFileCursor, + setDatetime: setDatetime, + setTimePeriod: setTimePeriod, + getExpectedFiles: getExpectedFiles, + getFilesLoaded: getFilesLoaded, + initialize: initialize, + finalize: finalize + } - let thisObject = { - getFileCursor: getFileCursor, - setDatetime: setDatetime, - setTimePeriod: setTimePeriod, - getExpectedFiles: getExpectedFiles, - getFilesLoaded: getFilesLoaded, - initialize: initialize, - finalize: finalize + let filesLoaded = 0 + let expectedFiles = 0 + + let fileCloud + + let fileCursors = new Map() + + let callBackWhenFileReceived + + return thisObject + + function finalize () { + try { + if (INFO_LOG === true) { logger.write('[INFO] finalize -> Entering function.') } + + filesLoaded = undefined + expectedFiles = undefined + fileCloud = undefined + + fileCursors.forEach(finalizeEach) + + function finalizeEach (item, key, mapObj) { + if (INFO_LOG === true) { logger.write('[INFO] finalize -> finalizeEach -> Entering function.') } + + item.finalize() + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] finalize -> err = ' + err) } } + } - let filesLoaded = 0; - let expectedFiles = 0; + function initialize (pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, pDatetime, pTimePeriod, callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> key = ' + pDevTeam.codeName + '-' + pBot.codeName + '-' + pProduct.codeName) } - let fileCloud; + callBackWhenFileReceived = callBackFunction - let fileCursors = new Map; + let exchange = ecosystem.getExchange(pProduct, pExchange) - let callBackWhenFileReceived; + if (exchange === undefined) { + throw 'Exchange not supoorted by this product of the ecosystem! - pDevTeam.codeName = ' + pDevTeam.codeName + ', pBot.codeName = ' + pBot.codeName + ', pProduct.codeName = ' + pProduct.codeName + ', pExchange = ' + pExchange + } - return thisObject; - - function finalize() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - - filesLoaded = undefined; - expectedFiles = undefined; - fileCloud = undefined; - - fileCursors.forEach(finalizeEach); - - function finalizeEach(item, key, mapObj) { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> finalizeEach -> Entering function."); } - - item.finalize(); - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err); } - } - } - - function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, pDatetime, pTimePeriod, callBackFunction) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); } - - callBackWhenFileReceived = callBackFunction; - - let exchange = ecosystem.getExchange(pProduct, pExchange); - - if (exchange === undefined) { - - throw "Exchange not supoorted by this product of the ecosystem! - pDevTeam.codeName = " + pDevTeam.codeName + ", pBot.codeName = " + pBot.codeName + ", pProduct.codeName = " + pProduct.codeName + ", pExchange = " + pExchange; - - } - - fileCloud = newFileCloud(); - fileCloud.initialize(pBot); + fileCloud = newFileCloud() + fileCloud.initialize(pBot) /* First we will get the Data Range */ - fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, undefined, undefined, undefined, true, onDataRangeReceived); + fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, undefined, undefined, undefined, true, onDataRangeReceived) - function onDataRangeReceived(err, pFile) { + function onDataRangeReceived (err, pFile) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Entering function.') } - try { + let beginDateRange + let endDateRange - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Entering function."); } + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received OK Response.') } - let beginDateRange; - let endDateRange; + beginDateRange = new Date(pFile.begin) + endDateRange = new Date(pFile.end) - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { + break + } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received OK Response."); } + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received FAIL Response.') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } - beginDateRange = new Date(pFile.begin); - endDateRange = new Date(pFile.end); + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> err.message = ' + err.message) } - break; - } + if (err.message === 'File does not exist.') { + if (INFO_LOG === true) { logger.write('[WARN] initialize -> onFileReceived -> No Date Range file found. maxDate will be set to current datetime. ') } - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + endDateRange = new Date() + break + } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received FAIL Response."); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } + if (err.message === 'Missing Configuration.') { + if (ERROR_LOG === true) { logger.write('[WARN] initialize -> onFileReceived -> The needed configuration for the dateRange at the dataSet of the product was not found.') } + if (ERROR_LOG === true) { logger.write('[WARN] initialize -> onFileReceived -> maxDate will be set to current datetime.') } - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> err.message = " + err.message); } - - if (err.message === "File does not exist.") { - - if (INFO_LOG === true) { logger.write("[WARN] initialize -> onFileReceived -> No Date Range file found. maxDate will be set to current datetime. "); } - - endDateRange = new Date(); - break; - } - - if (err.message === "Missing Configuration.") { - - if (ERROR_LOG === true) { logger.write("[WARN] initialize -> onFileReceived -> The needed configuration for the dateRange at the dataSet of the product was not found."); } - if (ERROR_LOG === true) { logger.write("[WARN] initialize -> onFileReceived -> maxDate will be set to current datetime."); } - - endDateRange = new Date(); - break; - } + endDateRange = new Date() + break + } /* If none of the previous conditions are met, the we return the err to the caller. */ - callBackFunction(err); - return; - } + callBackFunction(err) + return + } - default: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received Unexpected Response."); } - callBackFunction(err); - return; - } - } + default: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received Unexpected Response.') } + callBackFunction(err) + return + } + } /* Now we will get the daily files */ - for (i = 0; i < dailyFilePeriods.length; i++) { + for (i = 0; i < dailyFilePeriods.length; i++) { + let periodTime = dailyFilePeriods[i][0] + let periodName = dailyFilePeriods[i][1] - let periodTime = dailyFilePeriods[i][0]; - let periodName = dailyFilePeriods[i][1]; + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> periodTime = ' + periodTime) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> periodName = ' + periodName) } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> periodTime = " + periodTime); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> periodName = " + periodName); } + if (pSet.validPeriods.includes(periodName) === true) { + let fileCursor = newFileCursor() + fileCursor.initialize(fileCloud, pDevTeam, pBot, pSet, exchange, pMarket, periodName, periodTime, pDatetime, pTimePeriod, beginDateRange, endDateRange, onInitialized) - if (pSet.validPeriods.includes(periodName) === true) { + function onInitialized (err) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> Entering function.') } - let fileCursor = newFileCursor(); - fileCursor.initialize(fileCloud, pDevTeam, pBot, pSet, exchange, pMarket, periodName, periodTime, pDatetime, pTimePeriod, beginDateRange, endDateRange, onInitialized); + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { - function onInitialized(err) { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> Received OK Response.') } + break + } - try { + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> Entering function."); } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> Received FAIL Response.') } + callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + default: { - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> Received Unexpected Response.') } + callBackWhenFileReceived(err) + return + } + } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> Received OK Response."); } - break; - } + fileCursors.set(periodTime, fileCursor) - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> expectedFiles = ' + expectedFiles) } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> Received FAIL Response."); } - callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } - default: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> Received Unexpected Response."); } - callBackWhenFileReceived(err); - return; - } - } - - fileCursors.set(periodTime, fileCursor); - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> expectedFiles = " + expectedFiles); } - - expectedFiles = expectedFiles + fileCursor.getExpectedFiles(); - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> onInitialized -> expectedFiles = " + expectedFiles); } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onFileReceived -> onInitialized -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } - } - } - } - - loadThemAll(); - - function loadThemAll() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> loadThemAll -> Entering function."); } - - for (i = 0; i < dailyFilePeriods.length; i++) { - - let periodTime = dailyFilePeriods[i][0]; - let periodName = dailyFilePeriods[i][1]; - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> loadThemAll -> periodTime = " + periodTime); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> loadThemAll -> periodName = " + periodName); } - - if (pSet.validPeriods.includes(periodName) === true) { - - let fileCursor = fileCursors.get(periodTime); - fileCursor.reload(onFileReceived); - - } - } - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onFileReceived -> loadThemAll -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } - } + expectedFiles = expectedFiles + fileCursor.getExpectedFiles() + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> onInitialized -> expectedFiles = ' + expectedFiles) } } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onFileReceived -> onInitialized -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } } + } - } catch (err) { + loadThemAll() - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } - } + function loadThemAll () { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> loadThemAll -> Entering function.') } - function onFileReceived(err) { + for (i = 0; i < dailyFilePeriods.length; i++) { + let periodTime = dailyFilePeriods[i][0] + let periodName = dailyFilePeriods[i][1] - try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> loadThemAll -> periodTime = ' + periodTime) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> loadThemAll -> periodName = ' + periodName) } - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> Entering function."); } - - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> Received FAIL Response."); } - callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> err.message = " + err.message); } - - callBackWhenFileReceived(err); - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> Received Unexpected Response."); } - callBackWhenFileReceived(err); - return; + if (pSet.validPeriods.includes(periodName) === true) { + let fileCursor = fileCursors.get(periodTime) + fileCursor.reload(onFileReceived) } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onFileReceived -> loadThemAll -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } - - filesLoaded++; - - if (INFO_LOG === true) { logger.write("[INFO] onFileReceived -> filesLoaded = " + filesLoaded); } - - callBackWhenFileReceived(GLOBAL.DEFAULT_OK_RESPONSE, thisObject); // Note that the call back is called for every file loaded at each cursor. - + } } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] onFileReceived -> err = " + err); } - callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function getFileCursor(pPeriod) { + function onFileReceived (err) { + try { + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> Entering function.') } - try { - - if (INFO_LOG === true) { logger.write("[INFO] getFileCursor -> Entering function."); } - - return fileCursors.get(pPeriod); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getFileCursor -> err = " + err); } - + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> Received OK Response.') } + break } - } - function setDatetime(pDatetime) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] setDatetime -> Entering function."); } - - filesLoaded = 0; - expectedFiles = 0; - - fileCursors.forEach(setDatetimeToEach) - - function setDatetimeToEach(fileCursor, key, map) { - - fileCursor.setDatetime(pDatetime); - - if (INFO_LOG === true) { logger.write("[INFO] setDatetime -> expectedFiles = " + expectedFiles); } - - expectedFiles = expectedFiles + fileCursor.getExpectedFiles(); - - if (INFO_LOG === true) { logger.write("[INFO] setDatetime -> expectedFiles = " + expectedFiles); } - - fileCursor.reload(onFileReceived); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setDatetime -> err = " + err); } - + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> Received FAIL Response.') } + callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE) + return } - } - function setTimePeriod(pTimePeriod, pDatetime) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> Entering function."); } - - filesLoaded = 0; - expectedFiles = 0; - - fileCursors.forEach(setTimePeriodToEach) - - function setTimePeriodToEach(fileCursor, key, map) { - - fileCursor.setTimePeriod(pTimePeriod, pDatetime); - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> expectedFiles = " + expectedFiles); } - - expectedFiles = expectedFiles + fileCursor.getExpectedFiles(); - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> expectedFiles = " + expectedFiles); } - - fileCursor.reload(onFileReceived); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimePeriod -> err = " + err); } + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> err.message = ' + err.message) } + callBackWhenFileReceived(err) + return } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> Received Unexpected Response.') } + callBackWhenFileReceived(err) + return + } + } + + filesLoaded++ + + if (INFO_LOG === true) { logger.write('[INFO] onFileReceived -> filesLoaded = ' + filesLoaded) } + + callBackWhenFileReceived(GLOBAL.DEFAULT_OK_RESPONSE, thisObject) // Note that the call back is called for every file loaded at each cursor. + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] onFileReceived -> err = ' + err) } + callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function getExpectedFiles() { - - if (INFO_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] getExpectedFiles -> expectedFiles = " + expectedFiles); } - - return expectedFiles; + function getFileCursor (pPeriod) { + try { + if (INFO_LOG === true) { logger.write('[INFO] getFileCursor -> Entering function.') } + return fileCursors.get(pPeriod) + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] getFileCursor -> err = ' + err) } } + } - function getFilesLoaded() { + function setDatetime (pDatetime) { + try { + if (INFO_LOG === true) { logger.write('[INFO] setDatetime -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getFilesLoaded -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] getFilesLoaded -> filesLoaded = " + filesLoaded); } + filesLoaded = 0 + expectedFiles = 0 - return filesLoaded; + fileCursors.forEach(setDatetimeToEach) + function setDatetimeToEach (fileCursor, key, map) { + fileCursor.setDatetime(pDatetime) + + if (INFO_LOG === true) { logger.write('[INFO] setDatetime -> expectedFiles = ' + expectedFiles) } + + expectedFiles = expectedFiles + fileCursor.getExpectedFiles() + + if (INFO_LOG === true) { logger.write('[INFO] setDatetime -> expectedFiles = ' + expectedFiles) } + + fileCursor.reload(onFileReceived) + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] setDatetime -> err = ' + err) } } -} \ No newline at end of file + } + + function setTimePeriod (pTimePeriod, pDatetime) { + try { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> Entering function.') } + + filesLoaded = 0 + expectedFiles = 0 + + fileCursors.forEach(setTimePeriodToEach) + + function setTimePeriodToEach (fileCursor, key, map) { + fileCursor.setTimePeriod(pTimePeriod, pDatetime) + + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> expectedFiles = ' + expectedFiles) } + + expectedFiles = expectedFiles + fileCursor.getExpectedFiles() + + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> expectedFiles = ' + expectedFiles) } + + fileCursor.reload(onFileReceived) + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] setTimePeriod -> err = ' + err) } + } + } + + function getExpectedFiles () { + if (INFO_LOG === true) { logger.write('[INFO] getExpectedFiles -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] getExpectedFiles -> expectedFiles = ' + expectedFiles) } + + return expectedFiles + } + + function getFilesLoaded () { + if (INFO_LOG === true) { logger.write('[INFO] getFilesLoaded -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] getFilesLoaded -> filesLoaded = ' + filesLoaded) } + + return filesLoaded + } +} diff --git a/src/FileCloud.js b/src/FileCloud.js index bcd0d7605..49e5002c7 100644 --- a/src/FileCloud.js +++ b/src/FileCloud.js @@ -33,15 +33,19 @@ function newFileCloud () { } } - function getFile (pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction) { + function getFile (pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction, pOperationsId) { try { if (INFO_LOG === true) { logger.write('[INFO] getFile -> Entering function.') } const MAX_RETRIES = 3 - getFileRecursively(0, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction) + if (pOperationsId !== undefined) { + getFileRecursively(0, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction, pOperationsId) + } else { + getFileRecursively(0, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction) + } - function getFileRecursively (pRetryCounter, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction) { + function getFileRecursively (pRetryCounter, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pDatetime, pSequence, pDataRange, callBackFunction, pOperationsId) { try { if (INFO_LOG === true) { logger.write('[INFO] getFile -> getFileRecursively -> Entering function.') } if (INFO_LOG === true) { logger.write('[INFO] getFile -> getFileRecursively -> key = ' + pDevTeam.codeName + '-' + pBot.codeName + '-' + pSet.filePath + '-' + pSet.fileName) } @@ -92,7 +96,11 @@ function newFileCloud () { } if (pBot !== undefined) { - filePath = filePath.replace('@Bot', pBot.codeName) + if (pOperationsId !== undefined) { + filePath = filePath.replace('@Bot', pBot.codeName + '-' + pOperationsId) + } else { + filePath = filePath.replace('@Bot', pBot.codeName) + } } if (pExchange !== undefined) { @@ -134,10 +142,10 @@ function newFileCloud () { if (err.code === 'BlobNotFound' | err.code === 'FileNotFound' | err.code === 'ParentNotFound') { let customErr = { result: GLOBAL.CUSTOM_FAIL_RESPONSE.result, - message: 'File does not exist.' + filePath + '/' + fileName + message: 'File does not exist.' } - if (ERROR_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> customErr.message = ' + customErr.message) } + if (INFO_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> customErr.message = ' + customErr.message) } callBackFunction(customErr) return @@ -177,14 +185,14 @@ function newFileCloud () { callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, data) return } catch (err) { - if (ERROR_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> err = ' + err) } + if (INFO_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> err = ' + err) } let customErr = { result: GLOBAL.CUSTOM_OK_RESPONSE.result, - message: 'Data not in JSON Format.' + filePath + '/' + fileName + message: 'Data not in JSON Format.' } - if (ERROR_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> customErr.message = ' + customErr.message) } + if (INFO_LOG === true) { logger.write('[WARN] getFile -> getFileRecursively -> onFileReceived -> customErr.message = ' + customErr.message) } callBackFunction(customErr, text) return diff --git a/src/FileCursor.js b/src/FileCursor.js index 9592c2c1f..755cacc03 100644 --- a/src/FileCursor.js +++ b/src/FileCursor.js @@ -1,688 +1,586 @@ - -function newFileCursor() { +  +function newFileCursor () { + const MODULE_NAME = 'File Cursor' + const INFO_LOG = false + const ERROR_LOG = true + const logger = newWebDebugLog() + logger.fileName = MODULE_NAME - const MODULE_NAME = "File Cursor"; - const INFO_LOG = false; - const ERROR_LOG = true; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; + let cursorDate - let cursorDate; + let thisObject = { + reload: reload, + setDatetime: setDatetime, + setTimePeriod: setTimePeriod, + files: new Map(), + getExpectedFiles: getExpectedFiles, + initialize: initialize, + finalize: finalize + } - let thisObject = { - reload: reload, - setDatetime: setDatetime, - setTimePeriod: setTimePeriod, - files: new Map, - getExpectedFiles: getExpectedFiles, - initialize: initialize, - finalize: finalize - }; + let minCursorSize = 10 + let maxCursorSize = 30 - let minCursorSize = 10; - let maxCursorSize = 30; + let market + let exchange + let fileCloud + let devTeam + let bot + let thisSet + let periodName + let timePeriod + let beginDateRange + let endDateRange - let market; - let exchange; - let fileCloud; - let devTeam; - let bot; - let thisSet; - let periodName; - let timePeriod; - let beginDateRange; - let endDateRange; + let intervalHandle - let intervalHandle; + return thisObject - return thisObject; + function finalize () { + try { + if (INFO_LOG === true) { logger.write('[INFO] finalize -> Entering function.') } - function finalize() { + clearInterval(intervalHandle) - try { - - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - - clearInterval(intervalHandle); - - thisObject.files = undefined; - cursorDate = undefined; - fileCloud = undefined; - periodName = undefined; - timePeriod = undefined; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err); } - } + thisObject.files = undefined + cursorDate = undefined + fileCloud = undefined + periodName = undefined + timePeriod = undefined + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] finalize -> err = ' + err) } } + } - function initialize(pFileCloud, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pTimePeriod, pCursorDate, pCurrentTimePeriod, pBeginDateRange, pEndDateRange, callBackFunction) { + function initialize (pFileCloud, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pTimePeriod, pCursorDate, pCurrentTimePeriod, pBeginDateRange, pEndDateRange, callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> key = ' + pDevTeam.codeName + '-' + pBot.codeName + '-' + pSet.codeName + '-' + pPeriodName) } - try { + market = pMarket + exchange = pExchange + fileCloud = pFileCloud + devTeam = pDevTeam + bot = pBot + thisSet = pSet + periodName = pPeriodName + cursorDate = pCursorDate + timePeriod = pTimePeriod + beginDateRange = pBeginDateRange + endDateRange = pEndDateRange - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pSet.codeName + "-" + pPeriodName); } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> market = ' + market) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> periodName = ' + periodName) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> cursorDate = ' + cursorDate) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> beginDateRange = ' + beginDateRange) } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> endDateRange = ' + endDateRange) } - market = pMarket; - exchange = pExchange; - fileCloud = pFileCloud; - devTeam = pDevTeam; - bot = pBot; - thisSet = pSet; - periodName = pPeriodName; - cursorDate = pCursorDate; - timePeriod = pTimePeriod; - beginDateRange = pBeginDateRange; - endDateRange = pEndDateRange; + setTimePeriod(pCurrentTimePeriod, pCursorDate) - if (INFO_LOG === true) { logger.write("[INFO] initialize -> market = " + market); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> periodName = " + periodName); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> cursorDate = " + cursorDate); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> beginDateRange = " + beginDateRange); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> endDateRange = " + endDateRange); } + intervalHandle = setInterval(updateFiles, timePeriod) - setTimePeriod(pCurrentTimePeriod, pCursorDate); - - intervalHandle = setInterval(updateFiles , timePeriod); - - callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function updateFiles() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> Entering function."); } + function updateFiles () { + try { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> Entering function.') } /* In order to know if we need to update any file we follow this logic: 1. If the current date is already a file in the cursor, we need to update it. - 2. If the current date is one day ahead of a file in the cursor, we need to add this one to the cursor. + 2. If the current date is one day ahead of a file in the cursor, we need to add this one to the cursor. */ - let targetDate; - let dateString; - let file; + let targetDate + let dateString + let file /* Situation 1 */ - targetDate = new Date(); - dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2); + targetDate = new Date() + dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2) - file = thisObject.files.get(dateString); + file = thisObject.files.get(dateString) - if (file !== undefined) { + if (file !== undefined) { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> File found at the cursor, proceeding to update.') } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> File found at the cursor, proceeding to update."); } + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived) - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived); - - return; - } + return + } /* Situation 2 */ - targetDate = new Date( (new Date()).valueOf() - ONE_DAY_IN_MILISECONDS); - dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2); + targetDate = new Date((new Date()).valueOf() - ONE_DAY_IN_MILISECONDS) + dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2) - file = thisObject.files.get(dateString); // This is from yesterday + file = thisObject.files.get(dateString) // This is from yesterday - targetDate = new Date(); - dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2); + targetDate = new Date() + dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2) - if (file !== undefined) { + if (file !== undefined) { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> Previous day file found at the cursor, proceeding to add current date.') } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> Previous day file found at the cursor, proceeding to add current date."); } + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived) - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived); - - return; - } - - function onFileReceived(err, file) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> Entering function."); } - - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> Received FAIL Response."); } - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> Received Unexpected Response."); } - return; - } - } - - thisObject.files.set(dateString, file); - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> File updated."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> devTeam = " + devTeam.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> bot = " + bot.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> thisSet = " + thisSet.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onFileReceived -> dateString = " + dateString); } - - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] updateFiles -> onFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } - } - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] updateFiles -> err = " + err); } - } - } - - function setTimePeriod(pTimePeriod, pDatetime) { + return + } + function onFileReceived (err, file) { try { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> Entering function."); } + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> Received OK Response.') } + break + } + + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> Received FAIL Response.') } + return + } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> Received Unexpected Response.') } + return + } + } + + thisObject.files.set(dateString, file) + + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> File updated.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> devTeam = ' + devTeam.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> bot = ' + bot.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> thisSet = ' + thisSet.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onFileReceived -> dateString = ' + dateString) } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> onFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> err = ' + err) } + } + } + + function setTimePeriod (pTimePeriod, pDatetime) { + try { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> Entering function.') } /* - + We are implementing here an algorithm designed to save bandwidth, memory and processing power at the browser. We say there is a saving mode where the cursor is running at a minimum size. When the end user aproaches the time period the cursor is set, then it should exit the saving mode and go to its actual size. - + To do this we are going to measure the distance from the Time Period received to the one the cursors was initialized with. If these periods are consecutive, it means that the cursor should exit saving mode and load its full size. - + */ - cursorDate = pDatetime; // Adjust the cursor date to the one received. + cursorDate = pDatetime // Adjust the cursor date to the one received. - let positionA; + let positionA - for (let i = 0; i < dailyFilePeriods.length; i++) { + for (let i = 0; i < dailyFilePeriods.length; i++) { + let period = dailyFilePeriods[i] - let period = dailyFilePeriods[i]; - - if (period[0] === pTimePeriod) { - - positionA = i; - - } - - if (period[0] === timePeriod) { - - positionB = i; - - } - } - - if (Math.abs(positionB - positionA) <= 1) { - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> Will EXIT Saving Mode."); } - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> pTimePeriod = " + convertTimePeriodToName(pTimePeriod)); } - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> timePeriod = " + convertTimePeriodToName(timePeriod)); } - - exitSavingMode(); - - } else { - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> Will ENTER Saving Mode."); } - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> pTimePeriod = " + convertTimePeriodToName(pTimePeriod)); } - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> timePeriod = " + convertTimePeriodToName(timePeriod)); } - - enterSavingMode(); - - } - - function enterSavingMode() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> enterSavingMode -> Entering function."); } - - switch (timePeriod) { - - case _45_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 30; - } - break; - case _40_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 20; - } - break; - case _30_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _20_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _15_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _10_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _5_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _4_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _3_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _2_MINUTES_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - case _1_MINUTE_IN_MILISECONDS: - { - minCursorSize = 3; - maxCursorSize = 15; - } - break; - default: - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimePeriod -> enterSavingMode -> err = " + err); } - } - } - - function exitSavingMode() { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] setTimePeriod -> exitSavingMode -> Entering function."); } - - switch (timePeriod) { - - case _45_MINUTES_IN_MILISECONDS: - { - minCursorSize = 15; - maxCursorSize = 30; - } - break; - case _40_MINUTES_IN_MILISECONDS: - { - minCursorSize = 13; - maxCursorSize = 20; - } - break; - case _30_MINUTES_IN_MILISECONDS: - { - minCursorSize = 11; - maxCursorSize = 15; - } - break; - case _20_MINUTES_IN_MILISECONDS: - { - minCursorSize = 9; - maxCursorSize = 15; - } - break; - case _15_MINUTES_IN_MILISECONDS: - { - minCursorSize = 7; - maxCursorSize = 15; - } - break; - case _10_MINUTES_IN_MILISECONDS: - { - minCursorSize = 7; - maxCursorSize = 15; - } - break; - case _5_MINUTES_IN_MILISECONDS: - { - minCursorSize = 5; - maxCursorSize = 15; - } - break; - case _4_MINUTES_IN_MILISECONDS: - { - minCursorSize = 5; - maxCursorSize = 15; - } - break; - case _3_MINUTES_IN_MILISECONDS: - { - minCursorSize = 5; - maxCursorSize = 15; - } - break; - case _2_MINUTES_IN_MILISECONDS: - { - minCursorSize = 5; - maxCursorSize = 15; - } - break; - case _1_MINUTE_IN_MILISECONDS: - { - minCursorSize = 5; - maxCursorSize = 15; - } - break; - default: - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimePeriod -> exitSavingMode -> err = " + err); } - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setTimePeriod -> err = " + err); } + if (period[0] === pTimePeriod) { + positionA = i } - } - function setDatetime(pDatetime) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] setDatetime -> Entering function."); } - - if (pDatetime === undefined) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setDatetime -> Received undefined datetime."); } - return; - } - - cursorDate = pDatetime; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] setDatetime -> err = " + err); } + if (period[0] === timePeriod) { + positionB = i } - } + } - function reload(callBackFunction) { + if (Math.abs(positionB - positionA) <= 1) { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> Will EXIT Saving Mode.') } + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> pTimePeriod = ' + convertTimePeriodToName(pTimePeriod)) } + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> timePeriod = ' + convertTimePeriodToName(timePeriod)) } + exitSavingMode() + } else { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> Will ENTER Saving Mode.') } + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> pTimePeriod = ' + convertTimePeriodToName(pTimePeriod)) } + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> timePeriod = ' + convertTimePeriodToName(timePeriod)) } + + enterSavingMode() + } + + function enterSavingMode () { try { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> enterSavingMode -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] reload -> Entering function."); } - - getFiles(callBackFunction); - - collectGarbage(callBackFunction); + switch (timePeriod) { + case _45_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 30 + } + break + case _40_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 20 + } + break + case _30_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _20_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _15_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _10_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _5_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _4_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _3_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _2_MINUTES_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + case _1_MINUTE_IN_MILISECONDS: + { + minCursorSize = 3 + maxCursorSize = 15 + } + break + default: + } } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] reload -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] setTimePeriod -> enterSavingMode -> err = ' + err) } } - } - - function getFiles(callBackFunction) { + } + function exitSavingMode () { try { + if (INFO_LOG === true) { logger.write('[INFO] setTimePeriod -> exitSavingMode -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> Entering function."); } + switch (timePeriod) { - let i = 0; - let j = 0; + case _45_MINUTES_IN_MILISECONDS: + { + minCursorSize = 15 + maxCursorSize = 30 + } + break + case _40_MINUTES_IN_MILISECONDS: + { + minCursorSize = 13 + maxCursorSize = 20 + } + break + case _30_MINUTES_IN_MILISECONDS: + { + minCursorSize = 11 + maxCursorSize = 15 + } + break + case _20_MINUTES_IN_MILISECONDS: + { + minCursorSize = 9 + maxCursorSize = 15 + } + break + case _15_MINUTES_IN_MILISECONDS: + { + minCursorSize = 7 + maxCursorSize = 15 + } + break + case _10_MINUTES_IN_MILISECONDS: + { + minCursorSize = 7 + maxCursorSize = 15 + } + break + case _5_MINUTES_IN_MILISECONDS: + { + minCursorSize = 5 + maxCursorSize = 15 + } + break + case _4_MINUTES_IN_MILISECONDS: + { + minCursorSize = 5 + maxCursorSize = 15 + } + break + case _3_MINUTES_IN_MILISECONDS: + { + minCursorSize = 5 + maxCursorSize = 15 + } + break + case _2_MINUTES_IN_MILISECONDS: + { + minCursorSize = 5 + maxCursorSize = 15 + } + break + case _1_MINUTE_IN_MILISECONDS: + { + minCursorSize = 5 + maxCursorSize = 15 + } + break + default: + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] setTimePeriod -> exitSavingMode -> err = ' + err) } + } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] setTimePeriod -> err = ' + err) } + } + } - let dateString; + function setDatetime (pDatetime) { + try { + if (INFO_LOG === true) { logger.write('[INFO] setDatetime -> Entering function.') } - getNextFile(); + if (pDatetime === undefined) { + if (ERROR_LOG === true) { logger.write('[ERROR] setDatetime -> Received undefined datetime.') } + return + } - function getNextFile() { + cursorDate = pDatetime + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] setDatetime -> err = ' + err) } + } + } - try { + function reload (callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] reload -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> Entering function."); } + getFiles(callBackFunction) - let targetDate = new Date(cursorDate); - targetDate.setUTCDate(targetDate.getUTCDate() + j); + collectGarbage(callBackFunction) + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] reload -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + } + } + + function getFiles (callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> Entering function.') } + + let i = 0 + let j = 0 + + let dateString + + getNextFile() + + function getNextFile () { + try { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> Entering function.') } + + let targetDate = new Date(cursorDate) + targetDate.setUTCDate(targetDate.getUTCDate() + j) /* Small algorith to allow load first the current date, then alternate between the most forwad and the most backwards ones. */ - if (j === 0) { j++; } - else { - if (j < 0) { - j = -j; - j++; - } - else { - j = -j; - } - } - - let compareTargetDate = new Date(targetDate.toDateString()); - - if (beginDateRange !== undefined) { - - let compareBeginDate = new Date(beginDateRange.toDateString()); - - if (compareTargetDate.valueOf() < compareBeginDate.valueOf()) { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> Not loading the file for this date."); } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> compareTargetDate = " + compareTargetDate); } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> compareBeginDate = " + compareBeginDate); } - - controlLoop(); - return; - } - } - - if (endDateRange !== undefined) { - - let compareEndDate = new Date(endDateRange.toDateString()); - - if (compareTargetDate.valueOf() > compareEndDate.valueOf()) { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> Not loading the file for this date."); } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> compareTargetDate = " + compareTargetDate); } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> compareEndDate = " + compareEndDate); } - - controlLoop(); - return; - } - } - - dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2); - - let currentDay = Math.trunc((new Date()).valueOf() / (24 * 60 * 60 * 1000)); - let targetDay = Math.trunc(targetDate.valueOf() / (24 * 60 * 60 * 1000)); - - if (targetDay > currentDay) { - - controlLoop(); - - } else { - - if (thisObject.files.get(dateString) === undefined) { // We dont reload files we already have. - - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived); - - } else { - - controlLoop(); - } - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getFiles -> getNextFile -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + if (j === 0) { j++ } else { + if (j < 0) { + j = -j + j++ + } else { + j = -j } + } - function onFileReceived(err, file) { + let compareTargetDate = new Date(targetDate.toDateString()) - try { + if (beginDateRange !== undefined) { + let compareBeginDate = new Date(beginDateRange.toDateString()) - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Entering function."); } + if (compareTargetDate.valueOf() < compareBeginDate.valueOf()) { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> Not loading the file for this date.') } + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> compareTargetDate = ' + compareTargetDate) } + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate < compareBeginDate -> compareBeginDate = ' + compareBeginDate) } - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received FAIL Response."); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> err.message = " + err.message); } - - if (err.message === "File does not exist.") { - - controlLoop(); - return; - - } else { - - callBackFunction(err); - return; - } - - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received Unexpected Response."); } - callBackFunction(err); - return; - } - } - - thisObject.files.set(dateString, file); - - controlLoop(); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getFiles -> onFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + controlLoop() + return } + } - function controlLoop() { + if (endDateRange !== undefined) { + let compareEndDate = new Date(endDateRange.toDateString()) - try { + if (compareTargetDate.valueOf() > compareEndDate.valueOf()) { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> Not loading the file for this date.') } + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> compareTargetDate = ' + compareTargetDate) } + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> getNextFile -> compareTargetDate > compareEndDate -> compareEndDate = ' + compareEndDate) } - if (INFO_LOG === true) { logger.write("[INFO] getFiles -> controlLoop -> Entering function."); } - - if (callBackFunction !== undefined) { - - callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE); - - } - - i++; - - if (i < minCursorSize) { - - getNextFile(); - - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getFiles -> controlLoop -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + controlLoop() + return } + } + dateString = targetDate.getUTCFullYear() + '-' + pad(targetDate.getUTCMonth() + 1, 2) + '-' + pad(targetDate.getUTCDate(), 2) + + let currentDay = Math.trunc((new Date()).valueOf() / (24 * 60 * 60 * 1000)) + let targetDay = Math.trunc(targetDate.valueOf() / (24 * 60 * 60 * 1000)) + + if (targetDay > currentDay) { + controlLoop() + } else { + if (thisObject.files.get(dateString) === undefined) { + // We dont reload files we already have. + + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, undefined, onFileReceived) + } else { + controlLoop() + } + } } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] getFiles -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] getFiles -> getNextFile -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } - } - - function collectGarbage(callBackFunction) { + } + function onFileReceived (err, file) { try { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] collectGarbage -> Entering function."); } - - date = removeTime(cursorDate); - - let minDate = date.valueOf() - maxCursorSize * ONE_DAY_IN_MILISECONDS / 2; - let maxDate = date.valueOf() + maxCursorSize * ONE_DAY_IN_MILISECONDS / 2; - - for (let key of thisObject.files.keys()) { - - let keyDate = new Date(key); - - if (keyDate.valueOf() < minDate || keyDate.valueOf() > maxDate) { - - thisObject.files.delete(key); - - } + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> Received OK Response.') } + break } + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> Received FAIL Response.') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> err.message = ' + err.message) } + + if (err.message === 'File does not exist.') { + controlLoop() + return + } else { + callBackFunction(err) + return + } + } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> onFileReceived -> Received Unexpected Response.') } + callBackFunction(err) + return + } + } + + thisObject.files.set(dateString, file) + + controlLoop() } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] collectGarbage -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] getFiles -> onFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } + function controlLoop () { + try { + if (INFO_LOG === true) { logger.write('[INFO] getFiles -> controlLoop -> Entering function.') } + + if (callBackFunction !== undefined) { + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) + } + + i++ + + if (i < minCursorSize) { + getNextFile() + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] getFiles -> controlLoop -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] getFiles -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function getExpectedFiles() { + function collectGarbage (callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] collectGarbage -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); } + date = removeTime(cursorDate) - return minCursorSize; + let minDate = date.valueOf() - maxCursorSize * ONE_DAY_IN_MILISECONDS / 2 + let maxDate = date.valueOf() + maxCursorSize * ONE_DAY_IN_MILISECONDS / 2 + for (let key of thisObject.files.keys()) { + let keyDate = new Date(key) + + if (keyDate.valueOf() < minDate || keyDate.valueOf() > maxDate) { + thisObject.files.delete(key) + } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] collectGarbage -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } -} \ No newline at end of file + function getExpectedFiles () { + if (INFO_LOG === true) { logger.write('[INFO] getExpectedFiles -> Entering function.') } + + return minCursorSize + } +} diff --git a/src/FileSequence.js b/src/FileSequence.js index 5028143d4..330af1e55 100644 --- a/src/FileSequence.js +++ b/src/FileSequence.js @@ -1,219 +1,196 @@ - -function newFileSequence() { - const MODULE_NAME = "File Sequence"; - const INFO_LOG = false; - const ERROR_LOG = true; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; +function newFileSequence () { + const MODULE_NAME = 'File Sequence' + const INFO_LOG = false + const ERROR_LOG = true + const logger = newWebDebugLog() + logger.fileName = MODULE_NAME - let thisObject = { - eventHandler: undefined, - getFile: getFile, - getExpectedFiles: getExpectedFiles, - getFilesLoaded: getFilesLoaded, - initialize: initialize, - finalize: finalize + let thisObject = { + eventHandler: undefined, + getFile: getFile, + getExpectedFiles: getExpectedFiles, + getFilesLoaded: getFilesLoaded, + initialize: initialize, + finalize: finalize + } + + let filesLoaded = 0 + let fileCloud + let files = new Map() + let maxSequence = -1 // This is replaced by the content of the sequence file, which contains an index that starts on zero. In the case that the sequence file is not found the default value is -1 so when you add 1 it gives you the amount of files in the sequence, zero. + let market + let devTeam + let bot + let thisSet + let product + + thisObject.eventHandler = newEventHandler() + + let intervalHandle + + return thisObject + + function finalize () { + try { + if (INFO_LOG === true) { logger.write('[INFO] finalize -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] finalize -> devTeam = ' + devTeam.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] finalize -> bot = ' + bot.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] finalize -> thisSet = ' + thisSet.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] finalize -> intervalHandle = ' + intervalHandle) } + + clearInterval(intervalHandle) + + filesLoaded = undefined + fileCloud = undefined + files = undefined + maxSequence = undefined + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] finalize -> err = ' + err) } } + } - let filesLoaded = 0; - let fileCloud; - let files = new Map; - let maxSequence = -1; // This is replaced by the content of the sequence file, which contains an index that starts on zero. In the case that the sequence file is not found the default value is -1 so when you add 1 it gives you the amount of files in the sequence, zero. - let market; - let devTeam; - let bot; - let thisSet; - let product; + function initialize (pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction, pOperationsId) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> key = ' + pDevTeam.codeName + '-' + pBot.codeName + '-' + pProduct.codeName) } - thisObject.eventHandler = newEventHandler(); + exchange = ecosystem.getExchange(pProduct, pExchange) - let intervalHandle; + if (exchange === undefined) { + throw 'Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = ' + pDevTeam.codeName + ', pBot.codeName = ' + pBot.codeName + ', pProduct.codeName = ' + pProduct.codeName + ', pExchange = ' + pExchange + } - return thisObject; + intervalHandle = setInterval(updateFiles, _1_MINUTE_IN_MILISECONDS) - function finalize() { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> intervalHandle = ' + intervalHandle) } - try { + market = pMarket + devTeam = pDevTeam + bot = pBot + thisSet = pSet + product = pProduct - if (INFO_LOG === true) { logger.write("[INFO] finalize -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] finalize -> devTeam = " + devTeam.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] finalize -> bot = " + bot.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] finalize -> thisSet = " + thisSet.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] finalize -> intervalHandle = " + intervalHandle); } - - clearInterval(intervalHandle); - - filesLoaded = undefined; - fileCloud = undefined; - files = undefined; - maxSequence = undefined; - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] finalize -> err = " + err); } - } - } - - function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction) { - - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); } - - exchange = ecosystem.getExchange(pProduct, pExchange); - - if (exchange === undefined) { - - throw "Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = " + pDevTeam.codeName + ", pBot.codeName = " + pBot.codeName + ", pProduct.codeName = " + pProduct.codeName + ", pExchange = " + pExchange; - - } - - intervalHandle = setInterval(updateFiles, _1_MINUTE_IN_MILISECONDS); - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> intervalHandle = " + intervalHandle); } - - market = pMarket; - devTeam = pDevTeam; - bot = pBot; - thisSet = pSet; - product = pProduct; - - fileCloud = newFileCloud(); - fileCloud.initialize(bot); + fileCloud = newFileCloud() + fileCloud.initialize(bot) /* First we will get the sequence max number */ - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, "Sequence", undefined, onSequenceFileReceived); + if (pOperationsId !== undefined) { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, 'Sequence', undefined, onSequenceFileReceived, pOperationsId) + } else { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, 'Sequence', undefined, onSequenceFileReceived) + } - function onSequenceFileReceived(err, file) { + function onSequenceFileReceived (err, file) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> key = ' + devTeam.codeName + '-' + bot.codeName + '-' + product.codeName) } - try { + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Received OK Response.') } + break + } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> key = " + devTeam.codeName + "-" + bot.codeName + "-" + product.codeName); } + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Received FAIL Response.') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { + case GLOBAL.CUSTOM_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Received CUSTOM OK Response.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> err.message = ' + err.message) } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Received OK Response."); } - break; - } + callBackFunction(err) + return + } - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> err.message = ' + err.message) } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Received FAIL Response."); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } + callBackFunction(err, thisObject) + return + } - case GLOBAL.CUSTOM_OK_RESPONSE.result: { + default: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> Received Unexpected Response.') } + callBackFunction(err) + return + } + } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Received CUSTOM OK Response."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> err.message = " + err.message); } + maxSequence = Number(file) - callBackFunction(err); - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> err.message = " + err.message); } - - callBackFunction(err, thisObject); - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> Received Unexpected Response."); } - callBackFunction(err); - return; - } - } - - maxSequence = Number(file); - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> maxSequence = " + maxSequence); } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> maxSequence = ' + maxSequence) } /* Now we will get the sequence of files */ - for (let i = 0; i <= maxSequence; i++) { - - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived); - - function onFileReceived(err, file) { - - try { - - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received FAIL Response."); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> err.message = " + err.message); } - - callBackFunction(err); - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received Unexpected Response."); } - callBackFunction(err); - return; - } - } - - files.set(i, file); - - filesLoaded++; - - callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, thisObject); // Note that the callback is called for every file loaded. - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onSequenceFileReceived -> onFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } - } - } - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onSequenceFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + for (let i = 0; i <= maxSequence; i++) { + if (pOperationsId !== undefined) { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived, pOperationsId) + } else { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived) } + function onFileReceived (err, file) { + try { + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received OK Response.') } + break + } + + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received FAIL Response.') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> err.message = ' + err.message) } + + callBackFunction(err) + return + } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onSequenceFileReceived -> onFileReceived -> Received Unexpected Response.') } + callBackFunction(err) + return + } + } + + files.set(i, file) + + filesLoaded++ + + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, thisObject) // Note that the callback is called for every file loaded. + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onSequenceFileReceived -> onFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + } + } + } } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onSequenceFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function updateFiles() { + function updateFiles () { + try { + let updateFiles = 0 - try { - - let updateFiles = 0; - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> Entering function."); } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> Entering function.') } /* @@ -225,161 +202,141 @@ function newFileSequence() { */ - let currentMaxSequence = maxSequence; + let currentMaxSequence = maxSequence - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> currentMaxSequence = " + currentMaxSequence); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> intervalHandle = " + intervalHandle); } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> currentMaxSequence = ' + currentMaxSequence) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> intervalHandle = ' + intervalHandle) } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> devTeam = " + devTeam.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> bot = " + bot.codeName); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> thisSet = " + thisSet.codeName); } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> devTeam = ' + devTeam.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> bot = ' + bot.codeName) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> thisSet = ' + thisSet.codeName) } - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, "Sequence", undefined, onSequenceFileReceived); + if (pOperationsId !== undefined) { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, 'Sequence', undefined, onSequenceFileReceived, pOperationsId) + } else { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, 'Sequence', undefined, onSequenceFileReceived) + } - function onSequenceFileReceived(err, file) { + function onSequenceFileReceived (err, file) { + try { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> key = ' + devTeam.codeName + '-' + bot.codeName + '-' + product.codeName) } - try { + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Received OK Response.') } + break + } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> key = " + devTeam.codeName + "-" + bot.codeName + "-" + product.codeName); } + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Received FAIL Response.') } + return + } - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { + case GLOBAL.CUSTOM_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Received CUSTOM OK Response.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> err.message = ' + err.message) } + return + } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Received OK Response."); } - break; - } + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> err.message = ' + err.message) } + return + } - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + default: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> Received Unexpected Response.') } + return + } + } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Received FAIL Response."); } - return; - } + maxSequence = Number(file) - case GLOBAL.CUSTOM_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Received CUSTOM OK Response."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> err.message = " + err.message); } - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> err.message = " + err.message); } - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> Received Unexpected Response."); } - return; - } - } - - maxSequence = Number(file); - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> maxSequence = " + maxSequence); } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> maxSequence = ' + maxSequence) } /* Now we will get the sequence of files, but in this case only from the currentMaxSequence and above. */ - for (let i = currentMaxSequence; i <= maxSequence; i++) { + for (let i = currentMaxSequence; i <= maxSequence; i++) { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> i = ' + i) } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> i = " + i); } - - fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived); - - function onFileReceived(err, file) { - - try { - - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received FAIL Response."); } - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> err.message = " + err.message); } - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received Unexpected Response."); } - return; - } - } - - files.set(i, file); - - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> File Updated."); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> i = " + i); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> file.length = " + file.length); } - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> filesLoaded = " + filesLoaded); } - - if (i !== currentMaxSequence) { - - filesLoaded++; - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> filesLoaded = " + filesLoaded); } - - } - - if (filesLoaded === maxSequence + 1) { - - thisObject.eventHandler.raiseEvent("Files Updated", undefined); - if (INFO_LOG === true) { logger.write("[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Files Updated event Raised."); } - - } - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] updateFiles -> onSequenceFileReceived -> onFileReceived -> err = " + err); } - } - } - } - - } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] updateFiles -> onSequenceFileReceived -> err = " + err); } - } + if (pOperationsId !== undefined) { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived, pOperationsId) + } else { + fileCloud.getFile(devTeam, bot, thisSet, exchange, market, undefined, undefined, i, undefined, onFileReceived) } + function onFileReceived (err, file) { + try { + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received OK Response.') } + break + } + + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received FAIL Response.') } + return + } + + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> err.message = ' + err.message) } + return + } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Received Unexpected Response.') } + return + } + } + + files.set(i, file) + + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> File Updated.') } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> i = ' + i) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> file.length = ' + file.length) } + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> filesLoaded = ' + filesLoaded) } + + if (i !== currentMaxSequence) { + filesLoaded++ + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> filesLoaded = ' + filesLoaded) } + } + + if (filesLoaded === maxSequence + 1) { + thisObject.eventHandler.raiseEvent('Files Updated', undefined) + if (INFO_LOG === true) { logger.write('[INFO] updateFiles -> onSequenceFileReceived -> onFileReceived -> Files Updated event Raised.') } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> onSequenceFileReceived -> onFileReceived -> err = ' + err) } + } + } + } } catch (err) { - if (ERROR_LOG === true) { logger.write("[ERROR] updateFiles -> err = " + err); } + if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> onSequenceFileReceived -> err = ' + err) } } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] updateFiles -> err = ' + err) } } + } - function getFile(pSequence) { + function getFile (pSequence) { + if (INFO_LOG === true) { logger.write('[INFO] getFile -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] getFile -> pSequence = ' + pSequence) } - if (INFO_LOG === true) { logger.write("[INFO] getFile -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] getFile -> pSequence = " + pSequence); } + return files.get(pSequence) + } - return files.get(pSequence); + function getExpectedFiles () { + if (INFO_LOG === true) { logger.write('[INFO] getExpectedFiles -> Entering function.') } - } + return maxSequence + 1 + } - function getExpectedFiles() { + function getFilesLoaded () { + if (INFO_LOG === true) { logger.write('[INFO] getFilesLoaded -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); } - - return maxSequence + 1; - - } - - function getFilesLoaded() { - - if (INFO_LOG === true) { logger.write("[INFO] getFilesLoaded -> Entering function."); } - - return filesLoaded; - - } - -} \ No newline at end of file + return filesLoaded + } +} diff --git a/src/MarketFiles.js b/src/MarketFiles.js index 8ffc71a75..324a2c1f7 100644 --- a/src/MarketFiles.js +++ b/src/MarketFiles.js @@ -1,4 +1,4 @@ - +  function newMarketFiles () { const MODULE_NAME = 'Market Files' const INFO_LOG = false diff --git a/src/SingleFile.js b/src/SingleFile.js index 65c8d8472..fe4c22914 100644 --- a/src/SingleFile.js +++ b/src/SingleFile.js @@ -1,105 +1,89 @@ - -function newSingleFile() { +  +function newSingleFile () { + const MODULE_NAME = 'Single File' + const INFO_LOG = false + const ERROR_LOG = true + const logger = newWebDebugLog() + logger.fileName = MODULE_NAME - const MODULE_NAME = "Single File"; - const INFO_LOG = false; - const ERROR_LOG = true; - const logger = newWebDebugLog(); - logger.fileName = MODULE_NAME; + let thisObject = { + getFile: getFile, + initialize: initialize + } - let thisObject = { - getFile: getFile, - initialize: initialize - } + let fileCloud + let file - let fileCloud; - let file; + return thisObject - return thisObject; + function initialize (pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> Entering function.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> key = ' + pDevTeam.codeName + '-' + pBot.codeName + '-' + pProduct.codeName) } - function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction) { + let exchange = ecosystem.getExchange(pProduct, pExchange) - try { + if (pExchange !== undefined && exchange === undefined) { + // We support no exchange as a parameter, but if provided, then it must be at the list of exchanges of that product. - if (INFO_LOG === true) { logger.write("[INFO] initialize -> Entering function."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); } + throw 'Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = ' + pDevTeam.codeName + ', pBot.codeName = ' + pBot.codeName + ', pProduct.codeName = ' + pProduct.codeName + ', pExchange = ' + pExchange + } - let exchange = ecosystem.getExchange(pProduct, pExchange); - - if (pExchange !== undefined && exchange === undefined) { // We support no exchange as a parameter, but if provided, then it must be at the list of exchanges of that product. - - throw "Exchange not supoorted by this pProduct of the ecosystem! - pDevTeam.codeName = " + pDevTeam.codeName + ", pBot.codeName = " + pBot.codeName + ", pProduct.codeName = " + pProduct.codeName + ", pExchange = " + pExchange; - - } - - fileCloud = newFileCloud(); - fileCloud.initialize(pBot); + fileCloud = newFileCloud() + fileCloud.initialize(pBot) /* Now we will get the file */ - fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, undefined, undefined, undefined, undefined, onFileReceived); + fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, undefined, undefined, undefined, undefined, onFileReceived) - function onFileReceived(err, pFile) { + function onFileReceived (err, pFile) { + try { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Entering function.') } - try { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Entering function."); } - - switch (err.result) { - case GLOBAL.DEFAULT_OK_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received OK Response."); } - break; - } - - case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received FAIL Response."); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - return; - } - - case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response."); } - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> err.message = " + err.message); } - - callBackFunction(err); - return; - } - - default: { - - if (INFO_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received Unexpected Response."); } - callBackFunction(err); - return; - } - } - - file = pFile; - - callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE); - - } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> onFileReceived -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); - } + switch (err.result) { + case GLOBAL.DEFAULT_OK_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received OK Response.') } + break } + case GLOBAL.DEFAULT_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received FAIL Response.') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + + case GLOBAL.CUSTOM_FAIL_RESPONSE.result: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response.') } + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> err.message = ' + err.message) } + + callBackFunction(err) + return + } + + default: { + if (INFO_LOG === true) { logger.write('[INFO] initialize -> onFileReceived -> Received Unexpected Response.') } + callBackFunction(err) + return + } + } + + file = pFile + + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) } catch (err) { - - if (ERROR_LOG === true) { logger.write("[ERROR] initialize -> err = " + err); } - callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE); + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> onFileReceived -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err) } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } + } - function getFile() { + function getFile () { + if (INFO_LOG === true) { logger.write('[INFO] getFile -> Entering function.') } - if (INFO_LOG === true) { logger.write("[INFO] getFile -> Entering function."); } - - return file; - - } - -} \ No newline at end of file + return file + } +}