sphinxql
Version:
SphinxQL query builder for Node.JS. Supports Sphinx search(2.x and 3.x) and Manticore search
33 lines (25 loc) • 1.06 kB
text/typescript
import StatementBuilderBase from '../StatementBuilderBase';
import MatchExprStatement from './MatchStatement';
import WhereStatement from './WhereStatement';
export default class WhereCondition implements StatementBuilderBase {
protected matchStatement: MatchExprStatement = new MatchExprStatement();
protected whereConditions: WhereStatement[] = [];
build(): string {
let statement: string = '';
const hasMatchStatement: boolean = this.matchStatement.getParts().length > 0;
const hasWhereStatements: boolean = this.whereConditions.length > 0;
if (hasWhereStatements || hasMatchStatement) {
statement = ' WHERE ';
if (hasMatchStatement) {
statement += `MATCH(${this.matchStatement.build()})`;
if (hasWhereStatements) {
statement += ' AND ';
}
}
let stringStatements: string[];
stringStatements = this.whereConditions.map((condition: StatementBuilderBase) => condition.build());
statement += stringStatements.join(' AND ');
}
return statement;
}
}