in lib/protocol/decoder.js [471:600]
_parseGroupByResult(groupByType, groupByResultBody) {
switch (groupByType) {
case tsSearchProtos.GroupByType.GROUP_BY_FIELD: {
let groupByFieldResult = tsSearchProtos.GroupByFieldResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByFieldResult.groupByFieldResultItems, function (item) {
let itemResult = {
key: item.key,
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_RANGE: {
let groupByRangeResult = tsSearchProtos.GroupByRangeResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByRangeResult.groupByRangeResultItems, function (item) {
let itemResult = {
from: item.from,
to: item.to,
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_FILTER: {
let groupByFilterResult = tsSearchProtos.GroupByFilterResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByFilterResult.groupByFilterResultItems, function (item) {
let itemResult = {
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_GEO_DISTANCE: {
let groupByGeoDistanceResult = tsSearchProtos.GroupByGeoDistanceResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByGeoDistanceResult.groupByGeoDistanceResultItems, function (item) {
let itemResult = {
from: item.from,
to: item.to,
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_HISTOGRAM: {
let groupByHistogramResult = tsSearchProtos.GroupByHistogramResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByHistogramResult.groupByHistogramItems, function (item) {
let itemResult = {
key: TableStore.decoder._parseSearchVariant(item.key),
value: item.value,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_DATE_HISTOGRAM: {
let groupByDateHistogramResult = tsSearchProtos.GroupByDateHistogramResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByDateHistogramResult.groupByDateHistogramItems, function (item) {
let itemResult = {
timeStamp: item.timestamp,
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_GEO_GRID: {
let groupByGeoGridResult = tsSearchProtos.GroupByGeoGridResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByGeoGridResult.groupByGeoGridResultItems, function (item) {
let itemResult = {
key: item.key,
rowCount: item.rowCount,
geoGrid: item.geoGrid,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
items: resultItems,
};
}
case tsSearchProtos.GroupByType.GROUP_BY_COMPOSITE: {
let groupByCompositeResult = tsSearchProtos.GroupByCompositeResult.decode(groupByResultBody);
let resultItems = [];
TableStore.util.arrayEach(groupByCompositeResult.groupByCompositeResultItems, function (item) {
let itemResult = {
keys: item.keys,
rowCount: item.rowCount,
};
TableStore.decoder._parseSubAggAndGroupByResult(itemResult, item);
resultItems.push(itemResult);
});
return {
sourceNames: groupByCompositeResult.sourceGroupByNames,
nextToken: groupByCompositeResult.nextToken || null,
items: resultItems,
};
}
default:
throw new Error("not exist groupByType: " + groupByType);
}
},