n8n-nodes-dataforseo
Version:
DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.
160 lines • 7.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBulkSearchVolume = getBulkSearchVolume;
exports.getAmazonRelatedKeywords = getAmazonRelatedKeywords;
exports.getAmazonRankedKeywords = getAmazonRankedKeywords;
exports.getProductRankOverview = getProductRankOverview;
exports.getProductCompetitors = getProductCompetitors;
exports.getProductKeywordIntersections = getProductKeywordIntersections;
const n8n_workflow_1 = require("n8n-workflow");
const generalFunctions_1 = require("../../../functions/generalFunctions");
const dataForSeoRequest_1 = require("../../../functions/dataForSeoRequest");
async function getBulkSearchVolume(ef, i) {
const input_mode = ef.getNodeParameter('input_mode', i) || 'manual';
let parsedKeywords;
if (input_mode == 'manual') {
const keywords = ef.getNodeParameter('keywords', i);
parsedKeywords = (0, generalFunctions_1.parseMultiOptionItems)(keywords);
}
else {
parsedKeywords = ef.getNodeParameter('keywords_json', i);
}
const params = {
url: '/dataforseo_labs/amazon/bulk_search_volume/live',
body: [{
keywords: parsedKeywords.length ? parsedKeywords : null,
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i)
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getAmazonRelatedKeywords(ef, i) {
const params = {
url: '/dataforseo_labs/amazon/related_keywords/live',
body: [{
keyword: ef.getNodeParameter('keyword', i),
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i),
depth: ef.getNodeParameter('depth', i) || null,
include_seed_keyword: ef.getNodeParameter('include_seed_keyword', i),
ignore_synonyms: ef.getNodeParameter('ignore_synonyms', i),
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getAmazonRankedKeywords(ef, i) {
const orderBy = ef.getNodeParameter('order_by', i);
const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy);
if (parsedOrderBy.length > 3) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules");
}
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 params = {
url: '/dataforseo_labs/amazon/ranked_keywords/live',
body: [{
asin: ef.getNodeParameter('asin', i),
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i),
ignore_synonyms: ef.getNodeParameter('ignore_synonyms', i),
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null,
filters: parsedFilters.length ? parsedFilters : null,
order_by: parsedOrderBy.length ? parsedOrderBy : null
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getProductRankOverview(ef, i) {
const asins = ef.getNodeParameter('asins', i);
const parsedAsins = (0, generalFunctions_1.parseMultiOptionItems)(asins);
const params = {
url: '/dataforseo_labs/amazon/product_rank_overview/live',
body: [{
asins: parsedAsins.length ? parsedAsins : null,
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i)
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getProductCompetitors(ef, i) {
const orderBy = ef.getNodeParameter('order_by', i);
const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy);
if (parsedOrderBy.length > 3) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules");
}
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 params = {
url: '/dataforseo_labs/amazon/product_competitors/live',
body: [{
asin: ef.getNodeParameter('asin', i),
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i),
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null,
filters: parsedFilters.length ? parsedFilters : null,
order_by: parsedOrderBy.length ? parsedOrderBy : null
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
async function getProductKeywordIntersections(ef, i) {
const orderBy = ef.getNodeParameter('order_by', i);
const parsedOrderBy = (0, generalFunctions_1.parseOrderByString)(orderBy);
if (parsedOrderBy.length > 3) {
throw new n8n_workflow_1.NodeOperationError(ef.getNode(), "You can set no more than three sorting rules");
}
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 asins = ef.getNodeParameter('asins_for_intersection', i);
const values = asins.values;
let parsedAsins = {};
let index;
for (const key in values) {
index = parseInt(key) + 1;
Object.defineProperty(parsedAsins, index.toString(), {
value: values[key]['value'],
writable: true,
enumerable: true,
configurable: true
});
}
const params = {
url: '/dataforseo_labs/amazon/product_keyword_intersections/live',
body: [{
asins: parsedAsins,
location_name: ef.getNodeParameter('location_name_required', i),
language_name: ef.getNodeParameter('language_name_required', i),
intersection_mode: ef.getNodeParameter('intersection_mode', i) || null,
limit: ef.getNodeParameter('limit', i) || null,
offset: ef.getNodeParameter('offset', i) || null,
filters: parsedFilters.length ? parsedFilters : null,
order_by: parsedOrderBy.length ? parsedOrderBy : null
}]
};
return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params);
}
//# sourceMappingURL=amazon.js.map