n8n-nodes-dataforseo
Version:
DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.
171 lines • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataForSeo = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const backlinks_1 = require("./resources/backlinks");
const serp_1 = require("./resources/serp");
const business_data_1 = require("./resources/business_data");
const on_page_1 = require("./resources/on_page");
const keywords_data_1 = require("./resources/keywords_data");
const labs_1 = require("./resources/labs");
const backlinks_2 = require("./execute/backlinks");
const business_data_2 = require("./execute/business_data");
const keywords_data_2 = require("./execute/keywords_data");
const labs_2 = require("./execute/labs");
const on_page_2 = require("./execute/on_page");
const serp_2 = require("./execute/serp");
const ai_optimization_1 = require("./resources/ai_optimization");
const ai_optimization_2 = require("./execute/ai_optimization");
class DataForSeo {
constructor() {
this.description = {
displayName: 'DataForSEO',
name: 'dataForSeo',
icon: 'file:dataforseo.svg',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'DataForSEO',
defaults: {
name: 'DataForSeo',
},
inputs: ["main"],
outputs: ["main"],
credentials: [
{
name: 'dataForSeoApi',
required: true,
},
],
requestDefaults: {
method: 'POST',
baseURL: 'https://api.dataforseo.com/v3',
headers: {
'Content-Type': 'application/json',
},
},
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Backlink',
value: 'backlinks',
},
{
name: 'SERP',
value: 'serp',
},
{
name: 'Business Data',
value: 'business_data',
},
{
name: 'On Page',
value: 'on_page',
},
{
name: 'Keywords Data',
value: 'keywords_data',
},
{
name: 'Labs',
value: 'labs',
},
{
name: 'AI Optimization',
value: 'ai_optimization',
}
],
default: 'backlinks',
},
...backlinks_1.BacklinksOperations,
...serp_1.SerpOperations,
...business_data_1.BusinessDataOperations,
...on_page_1.OnPageOperations,
...keywords_data_1.KeywordsDataOperations,
...labs_1.LabsOperations,
...ai_optimization_1.AiOptimizationOperations
],
};
}
async execute() {
let responseData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
const mapping = {
'backlinks': {
'get-backlinks': backlinks_2.getBacklinks,
'get-backlink-summary': backlinks_2.getBacklinkSummary,
'get-historical-backlink-summary': backlinks_2.getHistoricalBacklinkSummary,
'get-bulk-backlink-rank': backlinks_2.getBulkBacklinkRank,
'get-bulk-backlink-stats': backlinks_2.getBulkBacklinkStats,
'get-backlinks-page-summary': backlinks_2.getBacklinksPageSummary,
'get-bulk-referring-domain-stats': backlinks_2.getBulkRefferingDomainStats,
'get-referring-domains': backlinks_2.getRefferingDomains,
'get-bulk-spam-scores': backlinks_2.getBulkSpamScores,
},
'business_data': {
'get-business-listings': business_data_2.getBusinessListings,
'get-business-listings-categories-aggregation': business_data_2.getBusinessListingsCategoriesAggregation,
'get-google-reviews': business_data_2.getGoogleReviews,
},
'keywords_data': {
'get-google-search-volume': keywords_data_2.getGoogleSearchVolume,
'get-keywords-for-keywords': keywords_data_2.getKeywordsForKeywords,
},
'labs': {
'get-domain-rank-overview': labs_2.getDomainRankOverview,
'get-keyword-suggestions': labs_2.getKeywordSuggestions,
'get-ranked-keywords': labs_2.getRankedKeywords,
'get-keyword-difficulty': labs_2.getKeywordDifficulty,
'get-organic-traffic-stats': labs_2.getOrganicTrafficStats,
'get-historical-traffic-stats': labs_2.getHistorycalTrafficStats,
'get-keyword-ideas': labs_2.getKeywordIdeas,
},
'on_page': {
'get-page-audit-check': on_page_2.getPageAuditCheck,
'parse-page-content': on_page_2.parsePageContent,
},
'serp': {
'get-parsed-serp': serp_2.getParsedSerp,
'get-finance-explore': serp_2.getFinanceExplore,
'get-finance-markets': serp_2.getFinanceMarkets,
'get-finance-quote': serp_2.getFinanceQuote,
'search-google-finance-tickers': serp_2.searchGoogleFinanceTickers,
'get-google-ai-mode-serp': serp_2.getGoogleAIModeSerp
},
'ai_optimization': {
'get-ai-keyword-search-volume': ai_optimization_2.getAiKeywordSearchVolume
}
};
const fn = mapping[resource][operation];
if (!fn) {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), "Something went wrong");
}
try {
const items = this.getInputData();
for (let i = 0; i < items.length; i++) {
const result = await fn(this, i);
responseData.push({
json: result,
pairedItem: { item: i }
});
}
}
catch (e) {
if (e instanceof n8n_workflow_1.NodeOperationError) {
throw e;
}
else {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), "Something went wrong");
}
}
return [this.helpers.returnJsonArray(responseData)];
}
}
exports.DataForSeo = DataForSeo;
//# sourceMappingURL=DataForSeo.node.js.map