@poli-digital/n8n-nodes-poli
Version:
Nó para interagir com a API da Poli
74 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processApiResponseForN8n = exports.extractDataOnly = exports.filterApiResponse = void 0;
function filterApiResponse(response, options = {}) {
if (!response)
return response;
const { removeUrls = true, removePaginationMeta = true, customFieldsToRemove = [], fieldsToKeep = [] } = options;
if (Array.isArray(response)) {
return response.map(item => filterApiResponse(item, options));
}
if (typeof response === 'object' && response !== null) {
const filtered = {};
const paginationFields = [
'links',
'meta',
'first_page_url',
'last_page_url',
'next_page_url',
'prev_page_url',
'path',
'current_page',
'from',
'to',
'per_page',
'last_page'
];
const urlFields = [
'url',
'avatar_url',
'webhook_url',
'callback_url'
];
const fieldsToRemove = [
...(removePaginationMeta ? paginationFields : []),
...(removeUrls ? urlFields : []),
...customFieldsToRemove
];
for (const [key, value] of Object.entries(response)) {
if (fieldsToKeep.length > 0 && !fieldsToKeep.includes(key)) {
continue;
}
if (fieldsToRemove.includes(key)) {
continue;
}
if (removeUrls && key.endsWith('_url')) {
continue;
}
if (typeof value === 'object' && value !== null) {
filtered[key] = filterApiResponse(value, options);
}
else {
filtered[key] = value;
}
}
return filtered;
}
return response;
}
exports.filterApiResponse = filterApiResponse;
function extractDataOnly(response, options) {
if (response && typeof response === 'object' && 'data' in response) {
return filterApiResponse(response.data, options);
}
return filterApiResponse(response, options);
}
exports.extractDataOnly = extractDataOnly;
function processApiResponseForN8n(response, onlyData = true, filterOptions) {
if (onlyData) {
return extractDataOnly(response, filterOptions);
}
return filterApiResponse(response, filterOptions);
}
exports.processApiResponseForN8n = processApiResponseForN8n;
//# sourceMappingURL=responseFilter.js.map