n8n-nodes-tulip
Version:
n8n nodes for sending data to the Tulip API
41 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.execute = execute;
const transport_1 = require("../../../transport");
async function execute(index) {
const tableId = this.getNodeParameter('tableId', index);
const filters = this.getNodeParameter('filters.filterValues', index, []);
const sortOptions = this.getNodeParameter('sortOptions.sortValues', index, []);
const body = {};
const qs = {};
const requestMethod = 'GET';
const resolveWithFullResponse = true;
const endpoint = `tables/${tableId}/records`;
qs.limit = this.getNodeParameter('limit', index);
qs.offset = this.getNodeParameter('offset', index);
qs.includeTotalCount = this.getNodeParameter('includeTotalCount', index);
qs.filterAggregator = this.getNodeParameter('filterAggregator', index);
if (filters.length > 0) {
const formattedFilters = filters.map(filter => ({
field: filter.columnName,
functionType: filter.filterFunction,
arg: filter.columnValue,
}));
qs.filters = JSON.stringify(formattedFilters);
}
if (sortOptions.length > 0) {
const formattedSortOptions = sortOptions.map(filter => ({
sortBy: filter.columnName,
sortDir: filter.sortOrder,
}));
qs.sortOptions = JSON.stringify(formattedSortOptions);
}
const responseData = await transport_1.apiRequest.call(this, requestMethod, endpoint, body, qs, resolveWithFullResponse);
const totalCount = responseData.headers['x-total-count'];
const records = responseData.body.map(record => ({
...record,
total_count: totalCount ? parseInt(totalCount, 10) : undefined,
}));
return this.helpers.returnJsonArray(records);
}
//# sourceMappingURL=execute.js.map