UNPKG

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
"use strict"; 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