Run query implemented

This commit is contained in:
vaidankarswapnil
2021-08-04 18:12:41 +05:30
parent 594c4026d5
commit d062c85e94
7 changed files with 488 additions and 169 deletions

View File

@@ -1,6 +1,7 @@
import * as ko from "knockout";
import { KeyCodes } from "../../../Common/Constants";
import { userContext } from "../../../UserContext";
import { IQueryTableRowsType } from "../../Tabs/QueryTablesTab/QueryTableTabUtils";
import * as Constants from "../Constants";
import { getQuotedCqlIdentifier } from "../CqlUtilities";
import * as DataTableUtilities from "../DataTable/DataTableUtilities";
@@ -141,35 +142,37 @@ export default class QueryBuilderViewModel {
this.addClauseImpl(example2, 1);
}
public getODataFilterFromClauses = (): string => {
public getODataFilterFromClauses = (queryClauses: IQueryTableRowsType[]): string => {
var filterString: string = "";
var treeTraversal = (group: ClauseGroup): void => {
for (var i = 0; i < group.children.length; i++) {
var currentItem = group.children[i];
// var treeTraversal = (queryClauses: IQueryTableRowsType[]): void => {
if (queryClauses != undefined) {
for (var i = 0; i < queryClauses.length; i++) {
var currentItem = queryClauses[i];
if (currentItem instanceof QueryClauseViewModel) {
var clause = <QueryClauseViewModel>currentItem;
this.timestampToValue(clause);
filterString = filterString.concat(
this.constructODataClause(
filterString === "" ? "" : clause.and_or(),
this.generateLeftParentheses(clause),
clause.field(),
clause.type(),
clause.operator(),
clause.value(),
this.generateRightParentheses(clause)
)
);
}
// if (currentItem instanceof QueryClauseViewModel) {
// var clause = <QueryClauseViewModel>currentItem;
this.timestampToValue(currentItem);
filterString = filterString.concat(
this.constructODataClause(
filterString === "" ? "" : currentItem.selectedOperation,
this.generateLeftParentheses(currentItem),
currentItem.selectedField,
currentItem.selectedEntityType,
currentItem.selectedOperator,
currentItem.entityValue,
this.generateRightParentheses(currentItem)
)
);
// }
if (currentItem instanceof ClauseGroup) {
treeTraversal(<ClauseGroup>currentItem);
}
// if (currentItem instanceof ClauseGroup) {
// treeTraversal(<ClauseGroup>currentItem);
// }
}
};
}
// };
treeTraversal(this.queryClauses);
// treeTraversal(this.queryClauses);
return filterString.trim();
};
@@ -238,7 +241,7 @@ export default class QueryBuilderViewModel {
return filterString.trim();
};
public getCqlFilterFromClauses = (): string => {
public getCqlFilterFromClauses = (queryTableRows: IQueryTableRowsType[]): string => {
const databaseId = this._queryViewModel.queryTablesTab.collection.databaseId;
const collectionId = this._queryViewModel.queryTablesTab.collection.id();
const tableToQuery = `${getQuotedCqlIdentifier(databaseId)}.${getQuotedCqlIdentifier(collectionId)}`;
@@ -300,7 +303,7 @@ export default class QueryBuilderViewModel {
this.columnOptions(newHeaders.sort(DataTableUtilities.compareTableColumns));
};
private generateLeftParentheses(clause: QueryClauseViewModel): string {
private generateLeftParentheses(clause: IQueryTableRowsType): string {
var result = "";
if (clause.clauseGroup.isRootGroup || clause.clauseGroup.children.indexOf(clause) !== 0) {
@@ -323,7 +326,7 @@ export default class QueryBuilderViewModel {
return result;
}
private generateRightParentheses(clause: QueryClauseViewModel): string {
private generateRightParentheses(clause: IQueryTableRowsType): string {
var result = "";
if (
@@ -495,6 +498,7 @@ export default class QueryBuilderViewModel {
// adds a new clause to the end of the array
public addNewClause = (): void => {
this.addClauseIndex(this.clauseArray().length, null);
// this.addClauseIndex(queryTableRows.length, null);
};
public onAddClauseKeyDown = (index: number, data: any, event: KeyboardEvent, source: any): boolean => {
@@ -715,18 +719,18 @@ export default class QueryBuilderViewModel {
//DataTableUtilities.forceRecalculateTableSize();
}
private timestampToValue(clause: QueryClauseViewModel): void {
if (clause.isValue()) {
private timestampToValue(clause: IQueryTableRowsType): void {
if (clause.isValue) {
return;
} else if (clause.isTimestamp()) {
} else if (clause.isTimestamp) {
this.getTimeStampToQuery(clause);
// } else if (clause.isCustomLastTimestamp()) {
// clause.value(`datetime'${CustomTimestampHelper._queryLastTime(clause.customLastTimestamp().lastNumber, clause.customLastTimestamp().lastTimeUnit)}'`);
} else if (clause.isCustomRangeTimestamp()) {
if (clause.isLocal()) {
clause.value(`datetime'${DateTimeUtilities.getUTCDateTime(clause.customTimeValue())}'`);
} else if (clause.isCustomRangeTimestamp) {
if (clause.isLocal) {
clause.entityValue = `datetime'${DateTimeUtilities.getUTCDateTime(clause.customTimeValue)}'`;
} else {
clause.value(`datetime'${clause.customTimeValue()}Z'`);
clause.entityValue = `datetime'${clause.customTimeValue}Z'`;
}
}
}
@@ -748,28 +752,28 @@ export default class QueryBuilderViewModel {
return null;
}
private getTimeStampToQuery(clause: QueryClauseViewModel): void {
switch (clause.timeValue()) {
private getTimeStampToQuery(clause: IQueryTableRowsType): void {
switch (clause.timeValue) {
case Constants.timeOptions.lastHour:
clause.value(`datetime'${CustomTimestampHelper._queryLastDaysHours(0, 1)}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryLastDaysHours(0, 1)}'`;
break;
case Constants.timeOptions.last24Hours:
clause.value(`datetime'${CustomTimestampHelper._queryLastDaysHours(0, 24)}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryLastDaysHours(0, 24)}'`;
break;
case Constants.timeOptions.last7Days:
clause.value(`datetime'${CustomTimestampHelper._queryLastDaysHours(7, 0)}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryLastDaysHours(7, 0)}'`;
break;
case Constants.timeOptions.last31Days:
clause.value(`datetime'${CustomTimestampHelper._queryLastDaysHours(31, 0)}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryLastDaysHours(31, 0)}'`;
break;
case Constants.timeOptions.last365Days:
clause.value(`datetime'${CustomTimestampHelper._queryLastDaysHours(365, 0)}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryLastDaysHours(365, 0)}'`;
break;
case Constants.timeOptions.currentMonth:
clause.value(`datetime'${CustomTimestampHelper._queryCurrentMonthLocal()}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryCurrentMonthLocal()}'`;
break;
case Constants.timeOptions.currentYear:
clause.value(`datetime'${CustomTimestampHelper._queryCurrentYearLocal()}'`);
clause.entityValue = `datetime'${CustomTimestampHelper._queryCurrentYearLocal()}'`;
break;
}
}