n8n-nodes-espocrm
Version:
n8n Community Node for EspoCRM
48 lines (47 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryBuilder = void 0;
class QueryBuilder {
static buildSearchQuery(searchTerm, fields) {
if (!searchTerm.trim() || fields.length === 0) {
return '';
}
const conditions = fields.map(field => ({
type: 'contains',
attribute: field,
value: searchTerm.trim()
}));
return JSON.stringify(conditions.length === 1 ? conditions[0] : {
type: 'or',
value: conditions
});
}
static buildFilterQuery(filters) {
const conditions = Object.entries(filters)
.filter(([_, value]) => value !== undefined && value !== null && value !== '')
.map(([key, value]) => ({
type: 'equals',
attribute: key,
value: value
}));
if (conditions.length === 0)
return '';
return JSON.stringify(conditions.length === 1 ? conditions[0] : {
type: 'and',
value: conditions
});
}
static combineQueries(...queries) {
const validQueries = queries.filter(q => q && q.trim());
if (validQueries.length === 0)
return '';
if (validQueries.length === 1)
return validQueries[0];
const parsedQueries = validQueries.map(q => JSON.parse(q));
return JSON.stringify({
type: 'and',
value: parsedQueries
});
}
}
exports.QueryBuilder = QueryBuilder;