UNPKG

n8n-nodes-dataforseo

Version:

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

198 lines 9.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSearchResults = getSearchResults; exports.getSummary = getSummary; exports.getSentimentAnalysis = getSentimentAnalysis; exports.getRatingDistribution = getRatingDistribution; exports.getPhraseTrends = getPhraseTrends; exports.getCategoryTrends = getCategoryTrends; const n8n_workflow_1 = require("n8n-workflow"); const generalFunctions_1 = require("../../../functions/generalFunctions"); const dataForSeoRequest_1 = require("../../../functions/dataForSeoRequest"); async function getSearchResults(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 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 keywordFields = ef.getNodeParameter('keyword_fields', i); const parsedKeywordFields = (0, generalFunctions_1.parseKeywordFields)(keywordFields); const pageType = ef.getNodeParameter('page_type', i); const params = { url: '/content_analysis/search/live', body: [{ keyword: ef.getNodeParameter('keyword', i), keyword_fields: parsedKeywordFields, page_type: pageType.length ? pageType : null, search_mode: ef.getNodeParameter('search_mode', i) || null, filters: parsedFilters.length ? parsedFilters : null, order_by: parsedOrderBy.length ? parsedOrderBy : null, offset: ef.getNodeParameter('offset', i) || null, limit: ef.getNodeParameter('limit', i) || null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getSummary(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 Filters value"); } const keywordFields = ef.getNodeParameter('keyword_fields', i); const parsedKeywordFields = (0, generalFunctions_1.parseKeywordFields)(keywordFields); const pageType = ef.getNodeParameter('page_type', i); const params = { url: '/content_analysis/summary/live', body: [{ keyword: ef.getNodeParameter('keyword', i), keyword_fields: parsedKeywordFields, page_type: pageType.length ? pageType : null, internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null, positive_connotation_threshold: ef.getNodeParameter('positive_connotation_threshold', i) || null, sentiments_connotation_threshold: ef.getNodeParameter('sentiments_connotation_threshold', i) || null, initial_dataset_filters: parsedFilters.length ? parsedFilters : null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getSentimentAnalysis(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 Filters value"); } const keywordFields = ef.getNodeParameter('keyword_fields', i); const parsedKeywordFields = (0, generalFunctions_1.parseKeywordFields)(keywordFields); const pageType = ef.getNodeParameter('page_type', i); const params = { url: '/content_analysis/sentiment_analysis/live', body: [{ keyword: ef.getNodeParameter('keyword', i), keyword_fields: parsedKeywordFields, page_type: pageType.length ? pageType : null, internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null, positive_connotation_threshold: ef.getNodeParameter('positive_connotation_threshold', i) || null, sentiments_connotation_threshold: ef.getNodeParameter('sentiments_connotation_threshold', i) || null, initial_dataset_filters: parsedFilters.length ? parsedFilters : null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getRatingDistribution(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 Filters value"); } const keywordFields = ef.getNodeParameter('keyword_fields', i); const parsedKeywordFields = (0, generalFunctions_1.parseKeywordFields)(keywordFields); const pageType = ef.getNodeParameter('page_type', i); const params = { url: '/content_analysis/rating_distribution/live', body: [{ keyword: ef.getNodeParameter('keyword', i), keyword_fields: parsedKeywordFields, page_type: pageType.length ? pageType : null, internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null, search_mode: ef.getNodeParameter('search_mode', i) || null, positive_connotation_threshold: ef.getNodeParameter('positive_connotation_threshold', i) || null, sentiments_connotation_threshold: ef.getNodeParameter('sentiments_connotation_threshold', i) || null, initial_dataset_filters: parsedFilters.length ? parsedFilters : null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getPhraseTrends(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 Filters value"); } const keywordFields = ef.getNodeParameter('keyword_fields', i); const parsedKeywordFields = (0, generalFunctions_1.parseKeywordFields)(keywordFields); const pageType = ef.getNodeParameter('page_type', i); let dateFrom = ef.getNodeParameter('date_from', i); if (dateFrom) { dateFrom = dateFrom.split('T')[0]; } let dateTo = ef.getNodeParameter('date_to', i); if (dateTo) { dateTo = dateTo.split('T')[0]; } const params = { url: '/content_analysis/phrase_trends/live', body: [{ keyword: ef.getNodeParameter('keyword', i), keyword_fields: parsedKeywordFields, page_type: pageType.length ? pageType : null, search_mode: ef.getNodeParameter('search_mode', i) || null, internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null, date_from: dateFrom || null, date_to: dateTo || null, date_group: ef.getNodeParameter('date_group', i) || null, initial_dataset_filters: parsedFilters.length ? parsedFilters : null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } async function getCategoryTrends(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 Filters value"); } const pageType = ef.getNodeParameter('page_type', i); let dateFrom = ef.getNodeParameter('date_from', i); if (dateFrom) { dateFrom = dateFrom.split('T')[0]; } let dateTo = ef.getNodeParameter('date_to', i); if (dateTo) { dateTo = dateTo.split('T')[0]; } const params = { url: '/content_analysis/category_trends/live', body: [{ category_code: ef.getNodeParameter('category_code', i), page_type: pageType.length ? pageType : null, search_mode: ef.getNodeParameter('search_mode', i) || null, internal_list_limit: ef.getNodeParameter('internal_list_limit', i) || null, date_from: dateFrom || null, date_to: dateTo || null, date_group: ef.getNodeParameter('date_group', i) || null, initial_dataset_filters: parsedFilters.length ? parsedFilters : null, rank_scale: ef.getNodeParameter('rank_scale', i) || null }] }; return (0, dataForSeoRequest_1.dataForSeoRequest)(ef, params); } //# sourceMappingURL=content_analysis.js.map