UNPKG

n8n-nodes-espocrm

Version:

n8n Community Node for EspoCRM

48 lines (47 loc) 1.55 kB
"use strict"; 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;