UNPKG

@ai-growth/n8n-nodes-wordpress

Version:

n8n node for WordPress integration with AI GROWTH - SEO WP plugin

95 lines 4.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorHandler = void 0; const n8n_workflow_1 = require("n8n-workflow"); /** * Classe para lidar com erros da API */ class ErrorHandler { /** * Trata erros da API do WordPress * @param error Erro a ser tratado * @param execFunctions Funções de execução do n8n * @param itemIndex Índice do item atual * @param operationName Nome da operação que falhou * @returns Node error formatado para o n8n */ static handleApiError(error, execFunctions, itemIndex = 0, operationName = 'operation') { const node = execFunctions.getNode(); let errorMessage = `Failed to execute WordPress ${operationName}`; // Erros do Axios (API) if (ErrorHandler.isAxiosError(error)) { if (error.response) { // Erro de autenticação if (error.response.status === 401) { return new n8n_workflow_1.NodeOperationError(node, 'Authentication failed: Please check your WordPress credentials', { itemIndex, description: 'Make sure your username and application password are correct', }); } // Erro de permissão if (error.response.status === 403) { return new n8n_workflow_1.NodeOperationError(node, 'Permission denied: The WordPress user does not have sufficient permissions', { itemIndex, description: 'Please check that your user has the correct WordPress roles', }); } // Erro de recurso não encontrado if (error.response.status === 404) { return new n8n_workflow_1.NodeOperationError(node, 'Resource not found: The requested WordPress resource does not exist', { itemIndex, }); } // Outros erros do servidor const serverError = error.response.data && typeof error.response.data === 'object' && 'message' in error.response.data ? error.response.data.message : error.response.statusText || error.message; return new n8n_workflow_1.NodeOperationError(node, `Server error (${error.response.status}): ${serverError}`, { itemIndex }); } // Erro de conexão (sem resposta) if (error.request) { return new n8n_workflow_1.NodeOperationError(node, 'Connection error: Failed to connect to WordPress site', { itemIndex, description: 'Please check the URL and ensure the WordPress site is online', }); } } // Erro genérico return new n8n_workflow_1.NodeOperationError(node, `${errorMessage}: ${error.message}`, { itemIndex }); } /** * Verifica se um erro é do tipo AxiosError * @param error Erro a ser verificado * @returns Verdadeiro se for um AxiosError */ static isAxiosError(error) { return error && error.isAxiosError === true; } /** * Cria um item de resposta de erro * @param error Erro a ser formatado * @param itemIndex Índice do item atual * @returns Dados de execução formatados com erro */ static createErrorOutput(error, itemIndex = 0) { const errorData = { success: false, error: true, message: error.message, }; if (ErrorHandler.isAxiosError(error) && error.response) { errorData.statusCode = error.response.status; errorData.statusText = error.response.statusText; if (error.response.data) { // Converter o response.data para um formato seguro errorData.response = error.response.data; } } return [{ json: errorData, pairedItem: { item: itemIndex }, }]; } } exports.ErrorHandler = ErrorHandler; //# sourceMappingURL=ErrorHandler.js.map