in streampipes-data-explorer/src/main/java/org/apache/streampipes/dataexplorer/param/ProvidedRestQueryParamConverter.java [44:106]
public static SelectQueryParams getSelectQueryParams(ProvidedRestQueryParams params) {
SelectQueryParams queryParameters = new SelectQueryParams(params.getMeasurementId());
if (params.has(SupportedRestQueryParams.QP_COUNT_ONLY)
&& params.getAsBoolean(SupportedRestQueryParams.QP_COUNT_ONLY)) {
queryParameters.withSelectParams(SelectClauseParams.from(params.getAsString(SupportedRestQueryParams.QP_COLUMNS),
true)
);
} else {
queryParameters.withSelectParams(SelectClauseParams.from(params.getAsString(SupportedRestQueryParams.QP_COLUMNS),
params.getAsString(SupportedRestQueryParams.QP_AGGREGATION_FUNCTION)));
}
String filterConditions = params.getAsString(SupportedRestQueryParams.QP_FILTER);
if (hasTimeParams(params)) {
queryParameters.withWhereParams(WhereClauseParams.from(
params.getAsLong(SupportedRestQueryParams.QP_START_DATE),
params.getAsLong(SupportedRestQueryParams.QP_END_DATE),
filterConditions));
} else if (filterConditions != null) {
queryParameters.withWhereParams(WhereClauseParams.from(filterConditions));
}
if (params.has(SupportedRestQueryParams.QP_TIME_INTERVAL)) {
String timeInterval = params.getAsString(SupportedRestQueryParams.QP_TIME_INTERVAL);
if (!params.has(SupportedRestQueryParams.QP_GROUP_BY)) {
queryParameters.withGroupByTimeParams(GroupByTimeClauseParams.from(timeInterval));
} else {
params.update(SupportedRestQueryParams.QP_GROUP_BY,
params.getAsString(SupportedRestQueryParams.QP_GROUP_BY) + ",time(" + timeInterval + ")");
}
queryParameters.withFillParams(FillClauseParams.from());
}
if (params.has(SupportedRestQueryParams.QP_GROUP_BY)) {
queryParameters.withGroupByTagsParams(GroupByTagsClauseParams.from(
params.getAsString(SupportedRestQueryParams.QP_GROUP_BY))
);
}
if (params.has(SupportedRestQueryParams.QP_ORDER)) {
String order = params.getAsString(SupportedRestQueryParams.QP_ORDER);
if (order.equals(ORDER_DESCENDING)) {
queryParameters.withOrderByParams(OrderByClauseParams.from(order));
}
}
if (params.has(SupportedRestQueryParams.QP_LIMIT)) {
queryParameters.withLimitParams(LimitClauseParams.from(params.getAsInt(SupportedRestQueryParams.QP_LIMIT)));
}
if (params.has(SupportedRestQueryParams.QP_OFFSET)) {
queryParameters.withOffsetParams(OffsetClauseParams.from(params.getAsInt(SupportedRestQueryParams.QP_OFFSET)));
} else if (params.has(SupportedRestQueryParams.QP_LIMIT) && params.has(SupportedRestQueryParams.QP_PAGE)) {
queryParameters.withOffsetParams(OffsetClauseParams.from(
params.getAsInt(SupportedRestQueryParams.QP_PAGE) * params.getAsInt(SupportedRestQueryParams.QP_LIMIT)));
}
return queryParameters;
}