UNPKG

n8n-nodes-brasilapi-dv

Version:

Nodes customizados do n8n para consulta de múltiplos endpoints da BrasilAPI, como CEP, DDD, CNPJ, FIPE e outros.

109 lines (108 loc) 4.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Fipe = void 0; class Fipe { constructor() { this.description = { displayName: 'BrasilAPI FIPE', name: 'brasilApiFipe', group: ['transform'], version: 1, description: 'Consulta FIPE usando BrasilAPI (veículos, marcas, preços)', icon: 'file:logo.svg', defaults: { name: 'FIPE', }, inputs: ['main'], outputs: ['main'], properties: [ { displayName: 'Tipo de consulta', name: 'tipo', type: 'options', options: [ { name: 'Marcas', value: 'marcas' }, { name: 'Modelos', value: 'modelos' }, { name: 'Anos', value: 'anos' }, { name: 'Preço', value: 'preco' } ], default: 'marcas', description: 'Escolha o tipo de consulta na FIPE' }, { displayName: 'Tipo de veículo', name: 'veiculo', type: 'options', options: [ { name: 'Carro', value: 'carros' }, { name: 'Moto', value: 'motos' }, { name: 'Caminhão', value: 'caminhoes' } ], default: 'carros', description: 'Categoria de veículo' }, { displayName: 'Código da Marca', name: 'codigoMarca', type: 'string', default: '', required: false }, { displayName: 'Código do Modelo', name: 'codigoModelo', type: 'string', default: '', required: false }, { displayName: 'Ano Modelo', name: 'anoModelo', type: 'string', default: '', required: false } ], }; } async execute() { const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i++) { const tipo = this.getNodeParameter('tipo', i); const veiculo = this.getNodeParameter('veiculo', i); const codigoMarca = this.getNodeParameter('codigoMarca', i); const codigoModelo = this.getNodeParameter('codigoModelo', i); const anoModelo = this.getNodeParameter('anoModelo', i); let url = ''; if (tipo === 'marcas') { url = `https://brasilapi.com.br/api/fipe/marcas/v1/${veiculo}`; } else if (tipo === 'modelos') { url = `https://brasilapi.com.br/api/fipe/modelos/v1/${veiculo}/${codigoMarca}`; } else if (tipo === 'anos') { url = `https://brasilapi.com.br/api/fipe/anos/v1/${veiculo}/${codigoMarca}/${codigoModelo}`; } else if (tipo === 'preco') { url = `https://brasilapi.com.br/api/fipe/preco/v1/${veiculo}/${codigoMarca}/${codigoModelo}/${anoModelo}`; } try { const response = await this.helpers.httpRequest({ method: 'GET', url, json: true, }); returnData.push({ json: response }); } catch (error) { returnData.push({ json: { error: error.message, tipo, veiculo, codigoMarca, codigoModelo, anoModelo }, }); } } return [returnData]; } } exports.Fipe = Fipe; exports.default = Fipe;