diff --git a/src/DailyFiles.js b/src/DailyFiles.js index 37b7c7464..3ea192514 100644 --- a/src/DailyFiles.js +++ b/src/DailyFiles.js @@ -54,6 +54,14 @@ function newDailyFiles () { fileCloud = newFileCloud() fileCloud.initialize(pBot) + /* Some Validations */ + if (pDataset.code.validTimeFrames === undefined) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = Can not initialize Market Files for bot ' + pBot.name) } + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = You need to define validTimeFrames at the Dataset config. ') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + /* First we will get the Data Range */ fileCloud.getFile(pDataMine, pBot, pSession, pDataset, exchange, pMarket, undefined, undefined, undefined, true, onDataRangeReceived) diff --git a/src/FileCloud.js b/src/FileCloud.js index 79caf7511..1b159317d 100644 --- a/src/FileCloud.js +++ b/src/FileCloud.js @@ -75,8 +75,8 @@ function newFileCloud () { } if (pMarket !== undefined) { - fileName = fileName.replace('@BaseAsset', pMarket.baseAsset) - fileName = fileName.replace('@QuotedAsset', pMarket.quotedAsset) + filePath = filePath.replace('@BaseAsset', pMarket.baseAsset) + filePath = filePath.replace('@QuotedAsset', pMarket.quotedAsset) } if (pDataMine !== undefined) { @@ -99,7 +99,7 @@ function newFileCloud () { } if (pExchange !== undefined) { - filePath = filePath.replace('@Exchange', pExchange.code.codeName) + filePath = filePath.replace('@Exchange', pExchange.name) } filePath = filePath.replace('@Period', pPeriodName) diff --git a/src/FileCursor.js b/src/FileCursor.js index 439ffe270..1608fc7c3 100644 --- a/src/FileCursor.js +++ b/src/FileCursor.js @@ -89,10 +89,10 @@ function newFileCursor () { beginDateRange = pBeginDateRange endDateRange = pEndDateRange - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponseDataSet, updateFiles) - key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + pPeriodName + key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Data Range Updated', undefined, key, onResponseDataRange, updateDataRange) callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) diff --git a/src/FileSequence.js b/src/FileSequence.js index 3646cfcc1..759eab6d3 100644 --- a/src/FileSequence.js +++ b/src/FileSequence.js @@ -74,7 +74,7 @@ function newFileSequence () { callerId = newUniqueId() - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, callerId, onResponse, updateFiles) function onResponse (message) { diff --git a/src/MarketFiles.js b/src/MarketFiles.js index 272f35476..7dcda95d0 100644 --- a/src/MarketFiles.js +++ b/src/MarketFiles.js @@ -36,13 +36,15 @@ function newMarketFiles () { let intervalHandle let finalized = false - let eventSubscriptionIdDatasetUpdated + let eventSubscriptionIdDatasetUpdated = [] return thisObject function finalize () { try { - systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated) + for (let i = 0; i < eventSubscriptionIdDatasetUpdated.length; i++) { + systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated[i]) + } thisObject.eventHandler.finalize() thisObject.eventHandler = undefined @@ -78,6 +80,14 @@ function newMarketFiles () { fileCloud = newFileCloud() fileCloud.initialize(pBot) + /* Some Validations */ + if (dataset.code.validTimeFrames === undefined) { + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = Can not initialize Market Files for bot ' + pBot.name) } + if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = You need to define validTimeFrames at the Dataset config. ') } + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) + return + } + /* Now we will get the market files */ for (let i = 0; i < marketFilesPeriods.length; i++) { @@ -98,13 +108,13 @@ function newMarketFiles () { } if (filesLoaded + filesNotLoaded === marketFilesPeriods.length) { - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponse, updateFiles) callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, thisObject) function onResponse (message) { - eventSubscriptionIdDatasetUpdated = message.eventSubscriptionId + eventSubscriptionIdDatasetUpdated.push(message.eventSubscriptionId) } } } catch (err) {