Files
Superalgos/FileCloud.js
T

86 lines
2.2 KiB
JavaScript

function newFileCloud() {
const CONSOLE_LOG = false;
var fileCloud = {
getFile: getFile,
initialize: initialize
};
let fileService;
return fileCloud;
function initialize(pBot) {
fileService = AzureStorage.createFileServiceWithSas(pBot.storage.fileUri, pBot.storage.sas).withFilter(new AzureStorage.ExponentialRetryPolicyFilter());
}
function getFile(pSet, pExchange, pMarket, pPeriodName, pDatetime, callBackFunction) {
let fileName = pSet.fileName;
let filePath = pSet.filePath;
if (fileName === undefined) {
console.log("Inconsistant data. Check the following. ");
console.log(JSON.stringify(pSet));
console.log(JSON.stringify(pExchange));
console.log(JSON.stringify(pMarket));
console.log(JSON.stringify(pPeriodName));
throw ("Inconsistant data received.");
}
fileName = fileName.replace("@AssetA", pMarket.assetA);
fileName = fileName.replace("@AssetB", pMarket.assetB);
filePath = filePath.replace("@Exchange", pExchange.name);
filePath = filePath.replace("@Period", pPeriodName);
if (pDatetime !== undefined) {
filePath = filePath.replace("@Year", pDatetime.getUTCFullYear());
filePath = filePath.replace("@Month", pad(pDatetime.getUTCMonth() + 1, 2));
filePath = filePath.replace("@Day", pad(pDatetime.getUTCDate(), 2));
filePath = filePath.replace("@Hour", pad(pDatetime.getUTCHours(), 2));
filePath = filePath.replace("@Minute", pad(pDatetime.getUTCMinutes(), 2));
}
fileService.getFileToText('data', filePath, fileName, undefined, onFileReceived);
if (CONSOLE_LOG === true) {
console.log("FileCloud -> File Requested -> " + filePath + "/" + fileName);
}
function onFileReceived(err, text, response) {
let data;
if (err) {
data = JSON.parse("[]");
} else {
try {
data = JSON.parse(text);
} catch (err) {
data = JSON.parse("[]");
}
}
callBackFunction(data);
}
}
}