UNPKG

n8n-nodes-dataforseo

Version:

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

105 lines 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataForSeoAppDataApi = void 0; const n8n_workflow_1 = require("n8n-workflow"); const google_1 = require("./resources/google"); const google_2 = require("./execute/google"); const apple_1 = require("./execute/apple"); const apple_2 = require("./resources/apple"); class DataForSeoAppDataApi { constructor() { this.description = { displayName: 'DataForSEO App Data API', name: 'dataForSeoAppDataApi', icon: 'file:dataforseo.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'DataForSEO', defaults: { name: 'DataForSeo App Data 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: 'Google', value: 'google', }, { name: 'Apple', value: 'apple', } ], default: 'google', }, ...google_1.GoogleOperations, ...apple_2.AppleOperations ], }; } async execute() { let responseData = []; const resource = this.getNodeParameter('resource', 0); const operation = this.getNodeParameter('operation', 0); const mapping = { 'google': { 'search-apps-advanced': google_2.searchAppsAdvanced, 'search-apps-html': google_2.searchAppsHtml, 'get-app-list-advanced': google_2.getAppListAdvanced, 'get-app-list-html': google_2.getAppListHtml, 'get-app-info-advanced': google_2.getAppInfoAdvanced, 'get-app-info-html': google_2.getAppInfoHtml, 'get-app-reviews': google_2.getAppReviews, 'get-app-listing-search': google_2.getAppListingSearch }, 'apple': { 'search-apps': apple_1.searchApps, 'get-app-list': apple_1.getAppList, 'get-app-info': apple_1.getAppInfo, 'get-apple-app-reviews': apple_1.getAppleAppReviews, 'get-apple-app-listings-search': google_2.getAppListingSearch } }; 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++) { responseData.push(await fn(this, 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.DataForSeoAppDataApi = DataForSeoAppDataApi; //# sourceMappingURL=DataForSeoAppDataApi.node.js.map