403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gadotticar/frete-api/src/frete/transportadoras/gofretes.service.ts
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!
        };
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit