Pular para o conteúdo principal

ReasonsNotSellingService

Visão Geral

O ReasonsNotSellingService fornece acesso aos motivos de não-venda cadastrados na API (ex: preço, prazo, falta de orçamento). É usado para obter a lista de motivos com suporte a paginação e sincronização incremental.

Localização: services/reasons-not-selling/reasons-not-selling.service.ts

Endpoints

MétodoEndpointDescrição
GET/motivosNaoVendaBusca lista paginada de motivos

Métodos

fetchRemote(params)

Busca motivos de não-venda na API remota com paginação e filtro por data.

Parâmetros

NomeTipoObrigatório
pagenumberNão
sizenumberNão
dataHorastringNão

Retorno: Promise<ReasonsNotSelling[]>

Exemplo

const reasons = await reasonsNotSellingService.fetchRemote({ page: 0, size: 50 });

Erros

StatusDescrição
5xxLança Error: ReasonsNotSellingService.fetchRemote failed: {status}

Estruturas de Dados

ReasonsNotSelling

interface ReasonsNotSelling {
id: string;
idOrganization: string;
nome: string;
ativo: string;
dhCriacao: string;
dhAlteracao: string;
}

Componentes Relacionados

ComponenteDescrição
buildQueryParamsSerializa os parâmetros de query para a requisição
apiWithoutAccessTokenInstância Axios sem token de acesso utilizada nas chamadas
PageResponse<T>Tipo genérico de resposta paginada da API
reasons-not-selling.service.instance.tsInstância: reasonsNotSellingService

Casos de Uso

Buscar motivos ativos:

const reasons = await reasonsNotSellingService.fetchRemote();
const active = reasons.filter(r => r.ativo === "S");

Buscar motivos atualizados após uma data:

const recent = await reasonsNotSellingService.fetchRemote({ dataHora: "2026-03-01T00:00:00" });

Testes

Localização: services/reasons-not-selling/reasons-not-selling.service.test.ts

CenárioResultado esperado
fetchRemote com status 200Retorna reasonsNotSellingResponseMock.content
fetchRemote com status 500Lança Error: ReasonsNotSellingService.fetchRemote failed

Mocks

Localização: __mocks__/reasons-not-selling.mock.ts

  • reasonsNotSellingResponseMock — objeto paginado com content (lista de ReasonsNotSelling) e metadados.

Exemplo de uso em testes:

import { reasonsNotSellingResponseMock } from "@/__mocks__/reasons-not-selling.mock";

const api: any = { get: jest.fn(async () => ({ status: 200, data: reasonsNotSellingResponseMock })) };
const service = new ReasonsNotSellingService({ apiWithoutAccessToken: api });
const result = await service.fetchRemote();
expect(result).toStrictEqual(reasonsNotSellingResponseMock.content);