UNPKG

n8n-nodes-dataforseo

Version:

DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.

153 lines 7.18 kB
"use strict"; 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 keywords = ef.getNodeParameter('keywords', i); const parsedKeywords = (0, generalFunctions_1.parseMultiOptionItems)(keywords); 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