n8n-nodes-dataforseo
Version:
DataForSEO is an SEO and marketing data provider, empowering businesses with invaluable insights via APIs and databases.
44 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dataForSeoRequest = dataForSeoRequest;
exports.dataForSeoPOSTGETRequest = dataForSeoPOSTGETRequest;
const n8n_workflow_1 = require("n8n-workflow");
async function dataForSeoRequest(ef, options) {
const baseUrl = 'https://api.dataforseo.com/v3';
const requestOptions = {
method: options.method ? options.method : 'POST',
headers: {
'Accept': 'application/json'
},
body: options.body ? options.body : null,
url: baseUrl + options.url,
json: true,
};
return await ef.helpers.httpRequestWithAuthentication.call(ef, 'dataForSeoApi', requestOptions);
}
async function dataForSeoPOSTGETRequest(ef, options, getPath) {
let responseData = await dataForSeoRequest(ef, options);
const taskStatus = responseData['tasks'][0]['status_code'];
if (taskStatus !== 20100) {
return responseData;
}
const taskId = responseData['tasks'][0]['id'];
if (taskId) {
const taskOptions = {
method: 'GET',
url: getPath + taskId,
};
let responseReceived = false;
let j = 0;
let statusCode;
while (j < 150 || !responseReceived) {
(0, n8n_workflow_1.sleep)(200);
responseData = await dataForSeoRequest(ef, taskOptions);
statusCode = responseData['tasks'][0]['status_code'];
responseReceived = statusCode != 40601 && statusCode != 40602 && statusCode != 20100;
j++;
}
}
return responseData;
}
//# sourceMappingURL=dataForSeoRequest.js.map