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
JavaScript
;
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;