UNPKG

n8n-nodes-smartsuite

Version:
81 lines 3.76 kB
"use strict"; // src/nodes/SmartSuite/methods/listSearch.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.listSearch = exports.searchTableFieldsMutable = exports.searchTableFields = exports.tableSearch = exports.solutionSearch = void 0; const utils_1 = require("../helpers/utils"); const smartSuiteApi_1 = require("../transport/smartSuiteApi"); // Helper to map fields for resourceLocator (supports description property) const serializeField = (f) => ({ name: `${f.label} (${f.field_type})`, value: f.slug, description: `Type: ${f.field_type}`, }); const solutionSearch = async function (filter = '') { const all = []; let offset = 0; const limit = 100; while (true) { const resp = (await smartSuiteApi_1.apiRequest.call(this, 'GET', '/solutions/', {}, { limit, offset })); const page = Array.isArray(resp) ? resp : resp.results || []; if (!page.length) break; all.push(...page); if (page.length < limit) break; offset += limit; } const filtered = all.filter((s) => !filter || s.name.toLowerCase().includes(filter.toLowerCase())); const results = filtered .sort((a, b) => a.name.localeCompare(b.name)) .map((s) => ({ name: s.name, value: s.id })); return { results }; }; exports.solutionSearch = solutionSearch; const tableSearch = async function (filter = '') { const solutionId = (0, utils_1.asIdString)(this.getNodeParameter('solutionId', 0)); if (!solutionId) return { results: [] }; const resp = (await smartSuiteApi_1.apiRequest.call(this, 'GET', `/applications/?solution=${solutionId}`)); const filtered = resp.filter((t) => !filter || t.name.toLowerCase().includes(filter.toLowerCase())); const results = filtered .sort((a, b) => a.name.localeCompare(b.name)) .map((t) => ({ name: t.name, value: t.id })); return { results }; }; exports.tableSearch = tableSearch; const searchTableFields = async function (filter = '') { const tableId = (0, utils_1.asIdString)(this.getNodeParameter('tableId', 0)); if (!tableId) return { results: [] }; const { structure = [] } = (await smartSuiteApi_1.apiRequest.call(this, 'GET', `/applications/${tableId}/`)); const filtered = structure.filter((f) => !filter || f.label.toLowerCase().includes(filter.toLowerCase()) || f.slug.toLowerCase().includes(filter.toLowerCase())); const results = filtered.map(serializeField); return { results }; }; exports.searchTableFields = searchTableFields; const searchTableFieldsMutable = async function (filter = '') { const tableId = (0, utils_1.asIdString)(this.getNodeParameter('tableId', 0)); if (!tableId) return { results: [] }; const { structure = [] } = (await smartSuiteApi_1.apiRequest.call(this, 'GET', `/applications/${tableId}/`)); // Exclude reserved fields const withoutReserved = structure.filter((f) => !(0, utils_1.isReservedField)(f.slug)); // Exclude record ID fields const withoutRecordId = withoutReserved.filter((f) => f.field_type !== 'recordidfield'); // Apply search filter const filtered = withoutRecordId.filter((f) => !filter || f.label.toLowerCase().includes(filter.toLowerCase()) || f.slug.toLowerCase().includes(filter.toLowerCase())); const results = filtered.map(serializeField); return { results }; }; exports.searchTableFieldsMutable = searchTableFieldsMutable; exports.listSearch = { solutionSearch: exports.solutionSearch, tableSearch: exports.tableSearch, searchTableFields: exports.searchTableFields, searchTableFieldsMutable: exports.searchTableFieldsMutable, }; //# sourceMappingURL=listSearch.js.map