diff --git a/src/FileCloud.js b/src/FileCloud.js index e6730e8e3..85843234b 100644 --- a/src/FileCloud.js +++ b/src/FileCloud.js @@ -113,7 +113,19 @@ function newFileCloud () { } if (pSession !== undefined) { - filePath = filePath.replace('@Session', pSession.id) + let code + let sessionFolderName = pSession.id + if (pSession.code !== undefined) { + try { + code = JSON.parse(pSession.code) + if (code.folderName !== undefined) { + sessionFolderName = code.folderName + '-' + pSession.id + } + } catch (err) { + sessionFolderName = pSession.id + } + } + filePath = filePath.replace('@Session', sessionFolderName) } if (pExchange !== undefined) { diff --git a/src/FileCursor.js b/src/FileCursor.js index 9952a314b..16b97ecfc 100644 --- a/src/FileCursor.js +++ b/src/FileCursor.js @@ -38,12 +38,15 @@ function newFileCursor () { let finalized = false let eventSubscriptionIdDatasetUpdated + let eventSubscriptionIdDataRangeUpdated return thisObject function finalize () { try { systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated) + systemEventHandler.stopListening('Data Range Updated', eventSubscriptionIdDataRangeUpdated) + thisObject.eventHandler = undefined market = undefined @@ -87,19 +90,51 @@ function newFileCursor () { endDateRange = pEndDateRange let key = devTeam.codeName + '-' + bot.codeName + '-' + product.codeName + '-' + thisSet.codeName - systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponse, updateFiles) + systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponseDataSet, updateFiles) + + key = devTeam.codeName + '-' + bot.codeName + '-' + product.codeName + '-' + pPeriodName + systemEventHandler.listenToEvent(key, 'Data Range Updated', undefined, key, onResponseDataRange, updateDataRange) callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) - function onResponse (message) { + function onResponseDataSet (message) { eventSubscriptionIdDatasetUpdated = message.eventSubscriptionId } + + function onResponseDataRange (message) { + eventSubscriptionIdDataRangeUpdated = message.eventSubscriptionId + } } catch (err) { if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err.stack) } callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } } + function updateDataRange (message) { + try { + if (finalized === true) { return } + + if (message.event === undefined || message.event.dateRange === undefined) { return } + + beginDateRange = new Date(message.event.dateRange.begin) + endDateRange = new Date(message.event.dateRange.end) + + let minDate = beginDateRange.valueOf() + let maxDate = endDateRange.valueOf() + ONE_DAY_IN_MILISECONDS + + for (let key of thisObject.files.keys()) { + let keyDate = new Date(key) + + if (keyDate.valueOf() < minDate || keyDate.valueOf() > maxDate) { + thisObject.files.delete(key) + thisObject.eventHandler.raiseEvent('Files Updated') + } + } + } catch (err) { + if (ERROR_LOG === true) { logger.write('[ERROR] updateDataRange -> err = ' + err.stack) } + } + } + function updateFiles (message) { try { if (finalized === true) { return }