n8n-nodes-base
Version:
Base nodes of n8n
81 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.theHiveApiQuery = theHiveApiQuery;
const requestApi_1 = require("./requestApi");
const utils_1 = require("../helpers/utils");
async function theHiveApiQuery(scope, filters, sortFields, limit, returnCount = false, extraData) {
const query = [];
if (scope.id) {
query.push({
_name: scope.query,
idOrName: scope.id,
});
}
else {
query.push({
_name: scope.query,
});
}
if (scope.restrictTo) {
query.push({
_name: scope.restrictTo,
});
}
if (filters && Array.isArray(filters) && filters.length) {
const filter = {
_name: 'filter',
_and: filters.filter((f) => f.field).map(utils_1.constructFilter),
};
query.push(filter);
}
if (sortFields?.length && !returnCount) {
const sort = {
_name: 'sort',
_fields: sortFields.map((field) => {
return {
[`${field.field}`]: field.direction,
};
}),
};
query.push(sort);
}
let responseData = [];
if (returnCount) {
query.push({
_name: 'count',
});
const count = await requestApi_1.theHiveApiRequest.call(this, 'POST', '/v1/query', { query });
responseData.push({ count });
}
else if (limit) {
const pagination = {
_name: 'page',
from: 0,
to: limit,
extraData,
};
query.push(pagination);
responseData = await requestApi_1.theHiveApiRequest.call(this, 'POST', '/v1/query', { query });
}
else {
let to = 500;
let from = 0;
let response = [];
do {
const pagination = {
_name: 'page',
from,
to,
extraData,
};
response = await requestApi_1.theHiveApiRequest.call(this, 'POST', '/v1/query', {
query: [...query, pagination],
});
responseData = responseData.concat(response || []);
from = to;
to += 500;
} while (response?.length);
}
return responseData;
}
//# sourceMappingURL=queryHelper.js.map