n8n-nodes-dataforseo
Version:
DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.
70 lines • 3.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBusinessListings = getBusinessListings;
exports.getCategoriesAggregation = getCategoriesAggregation;
const n8n_workflow_1 = require("n8n-workflow");
const dataForSeoRequest_1 = require("../../../functions/dataForSeoRequest");
const generalFunctions_1 = require("../../../functions/generalFunctions");
async function getBusinessListings(ef, i) {
const filters = ef.getNodeParameter('filters', i);
let parsedFilters = [];
try {
parsedFilters = (0, generalFunctions_1.parseFilters)(filters);
}
catch (e) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Filters value");
}
const categories = ef.getNodeParameter('categories', i);
const parsedCategories = (0, generalFunctions_1.parseMultiOptionItems)(categories);
if (parsedCategories.length > 10) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than 10 categories");
}
const orderBy = ef.getNodeParameter('order_by', i);
const parserdOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy);
const params = {
url: '/business_data/business_listings/search/live',
body: [{
categories: parsedCategories.length ? parsedCategories : null,
description: ef.getNodeParameter('description', i) || null,
title: ef.getNodeParameter('title', i) || null,
is_claimed: ef.getNodeParameter('is_claimed', i),
location_coordinate: ef.getNodeParameter('location_coordinate', i) || null,
filters: parsedFilters.length ? parsedFilters : null,
order_by: parserdOrderBy.length ? parserdOrderBy : null,
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null,
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getCategoriesAggregation(ef, i) {
const filters = ef.getNodeParameter('initial_dataset_filters', i);
let parsedFilters = [];
try {
parsedFilters = (0, generalFunctions_1.parseFilters)(filters);
}
catch (e) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "Invalid Initial Dataset Filters value");
}
const categories = ef.getNodeParameter('categories', i);
const parsedCategories = (0, generalFunctions_1.parseMultiOptionItems)(categories);
if (parsedCategories.length > 10) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than 10 categories");
}
const params = {
url: '/business_data/business_listings/categories_aggregation/live',
body: [{
categories: parsedCategories.length ? parsedCategories : null,
description: ef.getNodeParameter('description', i) || null,
title: ef.getNodeParameter('title', i) || null,
is_claimed: ef.getNodeParameter('is_claimed', i),
location_coordinate: ef.getNodeParameter('location_coordinate', i) || null,
initial_dataset_filters: parsedFilters.length ? parsedFilters : null,
internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null,
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null,
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
//# sourceMappingURL=business_listings.js.map