import node_fetch from "cross-fetch" import type { tipoResposta } from "p-respostas" import { respostaComuns } from "p-respostas" import { z } from "zod" import { PREFIXO, baseUrlPilao, tiposSeriesAgregacoes, type zp_produto_conta, } from "./_variaveis" export const zp_serie_registrar = z.object({ tabela: z.string(), colanuEixoX: z.string(), colunaAgrupamento: z.string(), agregacao: tiposSeriesAgregacoes, }) export const serie_consultar = ({ emDesenvolvimento, cliente, parametros, }: { emDesenvolvimento?: boolean | undefined | null /** Identificação do cliente */ cliente: z.infer parametros: z.infer }) => { const dados = async (): Promise< tipoResposta<{ registros: any[] legenda: string serie: z.infer }> > => { const url = new URL( `${baseUrlPilao(emDesenvolvimento)}${`${PREFIXO}/${ tiposSeriesAgregacoes.enum.contagem }/${cliente.produto}/${cliente.conta}`}`, ) const resp = await node_fetch(url.toString(), { method: "POST", body: JSON.stringify(parametros), headers: { "Content-Type": "application/json" }, }) .then((r) => r.json()) .catch((e) => respostaComuns.erro("Erro ao enviar registros", [e.message]), ) .then((r) => r as tipoResposta) return resp } const url = (): string => { const pr = { cliente, parametros, } const vUrl = new URL( `${ emDesenvolvimento ? "http://127.0.0.1:5081" : "https://carro-de-boi.idz.one" }${PREFIXO}/${tiposSeriesAgregacoes.enum.contagem}`, ) const serie = encodeURIComponent(JSON.stringify(pr, null, 2)) return `${vUrl.href}?serie=${serie}` } return { dados, url, } }