n8n-nodes-dataforseo
Version:
DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.
150 lines • 6.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataForSeoAiOptimizationApi = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const keyword_data_1 = require("./resources/keyword_data");
const keyword_data_2 = require("./execute/keyword_data");
const chat_gpt_1 = require("./execute/chat_gpt");
const chat_gpt_2 = require("./resources/chat_gpt");
const claude_1 = require("./resources/claude");
const claude_2 = require("./execute/claude");
const gemini_1 = require("./execute/gemini");
const gemini_2 = require("./resources/gemini");
const perplexity_1 = require("./execute/perplexity");
const llm_mentions_1 = require("./resources/llm_mentions");
const llm_mentions_2 = require("./execute/llm_mentions");
const perplexity_2 = require("./resources/perplexity");
class DataForSeoAiOptimizationApi {
constructor() {
this.description = {
displayName: 'DataForSEO AI Optimization API',
name: 'dataForSeoAiOptimizationApi',
icon: 'file:dataforseo.svg',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'DataForSEO',
defaults: {
name: 'DataForSeo AI Optimization API',
},
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: 'Keyword Data',
value: 'keyword_data',
},
{
name: 'ChatGPT',
value: 'chat_gpt',
},
{
name: 'Claude',
value: 'claude',
},
{
name: 'Gemini',
value: 'gemini',
},
{
name: 'Perplexity',
value: 'perplexity',
},
{
name: 'LLM Mentions',
value: 'llm_mentions',
}
],
default: 'keyword_data',
},
...keyword_data_1.KeywordDataOperations,
...chat_gpt_2.ChatGptOperations,
...claude_1.ClaudeOperations,
...gemini_2.GeminiOperations,
...perplexity_2.PerplexityOperations,
...llm_mentions_1.LlmMentionsOperations
],
};
}
async execute() {
let responseData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
const mapping = {
'keyword_data': {
'get-ai-keyword-search-volume': keyword_data_2.getAiKeywordSearchVolume
},
'chat_gpt': {
'get-live-chat-gpt-llm-responses': chat_gpt_1.getLiveChatGptLlmResponses,
'get-live-chat-gpt-llm-results-advanced': chat_gpt_1.getLiveChatGptLlmResultsAdvanced,
'get-live-chat-gpt-llm-results-html': chat_gpt_1.getLiveChatGptLlmResultsHTML,
'get-chat-gpt-llm-results-advanced': chat_gpt_1.geChatGptLlmResultsAdvanced,
'get-chat-gpt-llm-results-html': chat_gpt_1.geChatGptLlmResultsHTML
},
'claude': {
'get-live-claude-llm-responses': claude_2.getLiveClaudeLlmResponses,
},
'gemini': {
'get-live-gemini-llm-responses': gemini_1.getLiveGeminiLlmResponses,
'get-live-gemini-llm-scraper-results-advanced': gemini_1.getLiveGeminiLlmScraperResultsAdvanced,
'get-live-gemini-llm-scraper-results-html': gemini_1.getLiveGeminiLlmScraperResultsHTML,
'get-gemini-llm-scraper-results-advanced': gemini_1.getGeminiLlmScraperResultsAdvanced,
'get-gemini-llm-scraper-results-html': gemini_1.getGeminiLlmScraperResultsHTML
},
'perplexity': {
'get-live-perplexity-llm-responses': perplexity_1.getLivePerplexityLlmResponses
},
'llm_mentions': {
'get-live-llm-mentions': llm_mentions_2.getLiveLlmMentions,
'get-live-llm-mentions-top-pages': llm_mentions_2.getLiveLlmMentionsTopPages,
'get-live-llm-mentions-top-domains': llm_mentions_2.getLiveLlmMentionsTopDomains,
'get-live-llm-mentions-aggregated-metrics': llm_mentions_2.getLiveLlmMentionsAggregatedMetrics,
'get-live-llm-mentions-cross-aggregated-metrics': llm_mentions_2.getLiveLlmMentionsCrossAggregatedMetrics
}
};
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(), e);
}
}
return [this.helpers.returnJsonArray(responseData)];
}
}
exports.DataForSeoAiOptimizationApi = DataForSeoAiOptimizationApi;
//# sourceMappingURL=DataForSeoAiOptimizationApi.node.js.map