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
JavaScript
"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