| Server IP : 189.126.111.107 / Your IP : 216.73.217.69 Web Server : Apache System : Linux www.gadotticar.com.br 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64 User : gadotticar ( 1000) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gadotticar/frete-api/src/frete/transportadoras/ |
Upload File : |
import { Injectable, HttpException, HttpStatus } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { lastValueFrom } from 'rxjs';
@Injectable()
export class GoFretesService {
constructor(private readonly httpService: HttpService) {}
async calcularFrete(payload: any): Promise<any> {
const apiUrl = 'https://api.gofretes.com.br/cotacao';
const formattedPayload = this.formatPayloadForGoFretes(payload);
try {
const response = await lastValueFrom(
this.httpService.post(apiUrl, formattedPayload, {
headers: { 'Content-Type': 'application/json' },
}),
);
const data = response.data;
// ←←← Adicione esses logs aqui
console.log('STATUS HTTP GoFretes:', response.status);
console.log('RESPOSTA COMPLETA GoFretes:', JSON.stringify(data, null, 2));
console.log('Existe .cotacao?', !!data?.cotacao);
console.log('Existe .cotacoes?', !!data?.cotacoes);
console.log('Existe .success?', data?.success);
return data; // ← retorne sempre, mesmo sem cotacao
} catch (error) {
console.error('ERRO HTTP GoFretes:');
console.error('Status:', error.response?.status);
console.error('Mensagem:', error.response?.data || error.message);
console.error('Headers:', error.response?.headers);
throw error; // ou return null se preferir
}
}
private formatPayloadForGoFretes(payload: any): any {
return {
Produtos: payload.Produtos.map((produto: any) => ({
peso: Number(produto.peso), // converte para number
altura: Number(produto.altura),
largura: Number(produto.largura),
comprimento: Number(produto.comprimento),
valor: Number(produto.valor), // ← aqui resolve o erro principal
})),
Origem: {
logradouro: '',
numero: '',
complemento: '',
bairro: '',
referencia: '',
cep: payload.Origem.cep, // CEP pode ficar como string
},
Destino: {
logradouro: '',
numero: '',
complemento: '',
bairro: '',
referencia: '',
cep: payload.Destino.cep,
},
Token: '31fb92a7-378e-4d77-a045-be192536d0e1', // verifique se é válido!
};
}
}