Angular Metodo null [closed]

Discussão em 'Angular' iniciado por Thiago Medeiros de Lima, Setembro 10, 2024.

  1. O método getExtratoAnchorFinanceiroAnalitico é responsável por fazer uma requisição HTTP para obter ou exportar um relatório analítico de transações financeiras de um estabelecimento. Ele aceita vários parâmetros, como o id do estabelecimento, datas de início e fim, filtros de busca, e opções de exportação. Inicialmente, o método valida o id, e se for inválido, retorna um erro. Em seguida, constrói o objeto params que contém os parâmetros da requisição, como projeção, status, offset, e outros parâmetros relevantes. Caso a operação seja uma exportação (isExport for true), ele ajusta a URL para o endpoint de exportação e adiciona o tipo de exportação 'anchor', enquanto o parâmetro limit é excluído dos parâmetros. No caso contrário (não exportação), o limite de registros (limit) é incluído.

    O método também permite a aplicação de filtros opcionais, como número de pedido, bandeira do cartão, e status de transação, personalizando a busca conforme as necessidades. O bloco de requisição HTTP muda dependendo se é uma exportação ou não. Se for exportação, o retorno é tratado como um arquivo Blob (para download). Caso contrário, o método processa a resposta como um objeto de dados, aplicando um filtro adicional na resposta recebida.

    A modificação principal feita foi mover a linha params['limit'] = limit para fora da condição de exportação, garantindo que o parâmetro limit seja incluído apenas em requisições que não sejam de exportação. Isso evita o envio desnecessário do parâmetro em operações de exportação.

    public getExtratoAnchorFinanceiroAnalitico(
    id, selectedSubSeller, dataInicialP, dataFinalP, offset, limit, projection, filters?, isExport?: boolean
    ): Observable<any> {
    console.log("POSSIBILIDADE 01");

    if (id == null) {
    return observableThrowError(messages.erro_ec_invalido);
    }

    const params = this.crieParametroData(dataInicialP, dataFinalP);
    params['projection'] = projection;
    params['status'] = 0;
    params['offset'] = offset;

    // Adiciona o limite apenas se não for uma exportação
    if (!isExport) {
    params['limit'] = limit;
    }

    let url = `/api/v1/estabelecimento/${id}/extratos/split-payment/financeiro/transacoes/analitico`;
    if (isExport) {
    console.log("POSSIBILIDADE 01 AQUI");
    url = `/api/v1/estabelecimento/${id}/extratos/split-payment/financeiro/transacoes/exportar/analitico`;
    params['exportType'] = 'anchor';
    }

    if (selectedSubSeller) {
    params['subsellerId'] = selectedSubSeller.id;
    }

    if (typeof filters != 'undefined' && filters != null) {
    if (filters.aut) {
    params['nsu'] = filters.aut;
    }
    if (filters.numeroPedido) {
    params['orderNumber'] = filters.numeroPedido;
    }
    if (filters.bandeiras && filters.bandeiras.length > 0) {
    params['brandId'] = filters.bandeiras;
    }
    if (filters.idParceiro) {
    params['subsellerId'] = filters.idParceiro;
    }

    if (filters.status) {
    params['status'] = filters.status;
    if (filters.status == 'chargeback') {
    params['status'] = 'approved';
    params['include'] = 'adjustments';
    }
    }
    if (filters.modalidade) {
    params['methodId'] = filters.modalidade;
    }
    }

    console.log(params, 'parametros prontos');

    const requestOptions: Object = {
    headers: new HttpHeaders({ 'Content-Type': 'text' }),
    params: params,
    responseType: 'blob'
    };

    if (isExport) {
    return this.http.get<Blob>(pathValues.mcExtratos + url, requestOptions).pipe(
    map((response: Blob) => {
    return response;
    }),
    catchError((error: any) => {
    throw this.handleError(error);
    })
    );
    } else {
    return this.http.get<DefaultResponse>(pathValues.mcExtratos + url, { params: params }).pipe(
    retry(1),
    map(response => {
    return this.filter(response);
    }),
    catchError((error: any) => {
    throw this.handleError(error);
    })
    );
    }
    }

    Continue reading...

Compartilhe esta Página