94 lines
3.3 KiB
TypeScript
94 lines
3.3 KiB
TypeScript
export function statsToolParser(dataJSONobj: any): any {
|
|
let RequestInfoObj = Object.assign({});
|
|
switch(dataJSONobj.library) {
|
|
case "GoogleCharts":
|
|
//Pass the Chart library to ChartDataFormatter
|
|
RequestInfoObj.library = dataJSONobj.library;
|
|
RequestInfoObj.orderBy = dataJSONobj.orderBy;
|
|
|
|
//Create ChartInfo Object Array
|
|
RequestInfoObj.chartsInfo = [];
|
|
//Create ChartInfo and pass the Chart data queries to ChartDataFormatter
|
|
//along with the requested Chart type
|
|
RequestInfoObj.chartsInfo = dataJSONobj.chartDescription.queriesInfo;
|
|
break;
|
|
case "eCharts":
|
|
//Pass the Chart library to ChartDataFormatter
|
|
RequestInfoObj.library = dataJSONobj.library;
|
|
RequestInfoObj.orderBy = dataJSONobj.orderBy;
|
|
|
|
//Create ChartInfo Object Array
|
|
RequestInfoObj.chartsInfo = [];
|
|
|
|
//Create ChartInfo and pass the Chart data queries to ChartDataFormatter
|
|
//along with the requested Chart type
|
|
for (let index = 0; index < dataJSONobj.chartDescription.queries.length; index++) {
|
|
let element = dataJSONobj.chartDescription.queries[index];
|
|
var ChartInfoObj = Object.assign({});
|
|
|
|
if(element.type === undefined)
|
|
ChartInfoObj.type = dataJSONobj.chartDescription.series[index].type;
|
|
else
|
|
ChartInfoObj.type = element.type;
|
|
|
|
if(element.name === undefined)
|
|
ChartInfoObj.name = null;
|
|
else
|
|
ChartInfoObj.name = element.name;
|
|
|
|
ChartInfoObj.query = element.query;
|
|
RequestInfoObj.chartsInfo.push(ChartInfoObj);
|
|
}
|
|
break;
|
|
case "HighCharts":
|
|
RequestInfoObj.library = dataJSONobj.library;
|
|
RequestInfoObj.orderBy = dataJSONobj.orderBy;
|
|
//Pass the Chart type to ChartDataFormatter
|
|
var defaultType = dataJSONobj.chartDescription.chart.type;
|
|
//Create ChartInfo Object Array
|
|
RequestInfoObj.chartsInfo = [];
|
|
//Create ChartInfo and pass the Chart data queries to ChartDataFormatter
|
|
//along with the requested Chart type
|
|
dataJSONobj.chartDescription.queries.
|
|
forEach(element => {
|
|
var ChartInfoObj = Object.assign({});
|
|
|
|
if(element.type === undefined)
|
|
ChartInfoObj.type = defaultType;
|
|
else
|
|
ChartInfoObj.type = element.type;
|
|
|
|
if(element.name === undefined)
|
|
ChartInfoObj.name = null;
|
|
else
|
|
ChartInfoObj.name = element.name;
|
|
|
|
ChartInfoObj.query = element.query;
|
|
RequestInfoObj.chartsInfo.push(ChartInfoObj);
|
|
});
|
|
break;
|
|
case "HighMaps":
|
|
RequestInfoObj.library = dataJSONobj.library;
|
|
//Create ChartInfo Object Array
|
|
RequestInfoObj.chartsInfo = [];
|
|
|
|
//Create ChartInfo and pass the Chart data queries to ChartDataFormatter
|
|
dataJSONobj.mapDescription.queries.
|
|
forEach(element => {
|
|
var ChartInfoObj = Object.assign({});
|
|
|
|
if(element.name === undefined)
|
|
ChartInfoObj.name = null;
|
|
else
|
|
ChartInfoObj.name = element.name;
|
|
|
|
ChartInfoObj.query = element.query;
|
|
RequestInfoObj.chartsInfo.push(ChartInfoObj);
|
|
});
|
|
break;
|
|
default:
|
|
console.log("Unsupported Library: "+ dataJSONobj.library);
|
|
}
|
|
return RequestInfoObj;
|
|
}
|