"use strict"; /** Drive completo do piilão de dados */ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var _ClassPilao_instances, _ClassPilao_produto, _ClassPilao_conta, _ClassPilao_emDesenvolvimento, _ClassPilao_ver_log, _ClassPilao_registrosParaEnvio, _ClassPilao_codigosParaDeletar, _ClassPilao_gerarUrl, _ClassPilao_salvarEnviarRegistros, _ClassPilao_salvarDeletarRegistros; Object.defineProperty(exports, "__esModule", { value: true }); exports.Pilao = void 0; const cross_fetch_1 = __importDefault(require("cross-fetch")); const p_comuns_1 = require("p-comuns"); const p_respostas_1 = require("p-respostas"); const variaveis_1 = require("../variaveis"); class ClassPilao { constructor({ conta, produto, emDesenvolvimento = false, ver_log = false, }) { _ClassPilao_instances.add(this); _ClassPilao_produto.set(this, void 0); _ClassPilao_conta.set(this, void 0); _ClassPilao_emDesenvolvimento.set(this, void 0); _ClassPilao_ver_log.set(this, void 0); _ClassPilao_registrosParaEnvio.set(this, {}); _ClassPilao_codigosParaDeletar.set(this, {}); __classPrivateFieldSet(this, _ClassPilao_produto, produto, "f"); __classPrivateFieldSet(this, _ClassPilao_conta, conta, "f"); __classPrivateFieldSet(this, _ClassPilao_emDesenvolvimento, emDesenvolvimento, "f"); __classPrivateFieldSet(this, _ClassPilao_ver_log, ver_log, "f"); } rotaEnviarRegistros() { return __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_gerarUrl).call(this, "enviar-registros"); } rotaDeletarRegistro() { return __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_gerarUrl).call(this, "deletar-registros"); } rotaConsultarSerie(tipoVisao) { return __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_gerarUrl).call(this, "consultar-serie", tipoVisao); } rotaIframeSerie(tipoVisao) { const rota = `${variaveis_1.PREFIXO_PILAO}/consultar-serie/${__classPrivateFieldGet(this, _ClassPilao_produto, "f")}/${__classPrivateFieldGet(this, _ClassPilao_conta, "f")}/${tipoVisao}`; const url = `${this.baseUrlSite}${rota}`; return { rota, url }; } rotaFuncaoApi(funcao) { return __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_gerarUrl).call(this, "API", funcao); } async consultarApi(funcao, parametros) { try { const response = await (0, cross_fetch_1.default)(this.rotaFuncaoApi(funcao).url, { body: JSON.stringify(parametros), method: "POST", headers: { "Content-Type": "application/json" }, }); return await response.json(); } catch (erro) { console.error(erro); return p_respostas_1.respostaComuns.erroInterno({ erro, local: (0, p_comuns_1.nomeVariavel)({ ClassPilao }), }); } } get baseUrlApi() { return __classPrivateFieldGet(this, _ClassPilao_emDesenvolvimento, "f") ? "http://localhost:5080" : "https://carro-de-boi.idz.one"; } get baseUrlSite() { return __classPrivateFieldGet(this, _ClassPilao_emDesenvolvimento, "f") ? "http://localhost:5081" : "https://carro-de-boi.idz.one"; } validarCliente(_) { if (!_?.conta) return p_respostas_1.respostaComuns.erro("Conta não informada"); if (!_?.produto) return p_respostas_1.respostaComuns.erro("Produto não informado"); return p_respostas_1.respostaComuns.valor(_); } adicionarRegistroParaEnviar(tabela, ...registros) { __classPrivateFieldGet(this, _ClassPilao_registrosParaEnvio, "f")[tabela] = [ ...(__classPrivateFieldGet(this, _ClassPilao_registrosParaEnvio, "f")[tabela] || []), ...registros, ]; return this; } adicionarCodigoParaDeletar(tabela, ...codigos) { __classPrivateFieldGet(this, _ClassPilao_codigosParaDeletar, "f")[tabela] = [ ...(__classPrivateFieldGet(this, _ClassPilao_codigosParaDeletar, "f")[tabela] || []), ...codigos, ]; return this; } async processarRegistros(url, registros, tabela, acao) { const tamanhoBlocos = 1000; while (registros.length > 0) { const bloco = registros .splice(0, tamanhoBlocos) .map((r) => Object.fromEntries(Object.entries(r).map(([k, v]) => [k, v === undefined ? null : v]))); const resp = await (0, cross_fetch_1.default)(url, { method: "POST", body: JSON.stringify({ tabela, registros: bloco }), headers: { "Content-Type": "application/json" }, }) .then((r) => r.json()) .catch((e) => p_respostas_1.respostaComuns.erro(`Erro ao ${acao} registros`, [e.message])); if (resp.eErro) return resp; } return p_respostas_1.respostaComuns.valor(true); } async salvarRegistros() { const re = await __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_salvarEnviarRegistros).call(this); if (re.eErro) return re; const rd = await __classPrivateFieldGet(this, _ClassPilao_instances, "m", _ClassPilao_salvarDeletarRegistros).call(this); if (rd.eErro) return rd; return p_respostas_1.respostaComuns.valor(true); } serieConsultar(tipoVisao, parametros) { const dados = async () => { const url = this.rotaConsultarSerie(tipoVisao).url; const resp = await (0, cross_fetch_1.default)(url.toString(), { method: "POST", body: JSON.stringify(parametros), headers: { "Content-Type": "application/json" }, }) .then((r) => r.json()) .catch((e) => p_respostas_1.respostaComuns.erro("Erro ao enviar registros", [e.message])); if (__classPrivateFieldGet(this, _ClassPilao_ver_log, "f")) console.log(`[PILÃO]: buscar dados de "${JSON.stringify(parametros)}" para "${url}".`); return resp; }; const url = () => { const vUrl = this.rotaIframeSerie(tipoVisao).url; const serie = encodeURIComponent(JSON.stringify(parametros, null, 2)); if (__classPrivateFieldGet(this, _ClassPilao_ver_log, "f")) console.log(`[PILÃO]: Serie Consultar url de "${JSON.stringify(serie)}" para "${vUrl}".`); return `${vUrl}?serie=${serie}`; }; return { dados, url, }; } urlLaboratorio() { const rota = `${variaveis_1.PREFIXO_PILAO}/laboratório/${__classPrivateFieldGet(this, _ClassPilao_produto, "f")}/${__classPrivateFieldGet(this, _ClassPilao_conta, "f")}`; const url = `${this.baseUrlSite}${rota}`; return { rota, url }; } } _ClassPilao_produto = new WeakMap(), _ClassPilao_conta = new WeakMap(), _ClassPilao_emDesenvolvimento = new WeakMap(), _ClassPilao_ver_log = new WeakMap(), _ClassPilao_registrosParaEnvio = new WeakMap(), _ClassPilao_codigosParaDeletar = new WeakMap(), _ClassPilao_instances = new WeakSet(), _ClassPilao_gerarUrl = function _ClassPilao_gerarUrl(acao, extraPath) { const rota = `${variaveis_1.PREFIXO_PILAO}/api/${acao}/${__classPrivateFieldGet(this, _ClassPilao_produto, "f")}/${__classPrivateFieldGet(this, _ClassPilao_conta, "f")}${extraPath ? `/${extraPath}` : ""}`; const url = `${this.baseUrlApi}${rota}`; return { rota, url }; }, _ClassPilao_salvarEnviarRegistros = async function _ClassPilao_salvarEnviarRegistros() { for (const tabela of Object.keys(__classPrivateFieldGet(this, _ClassPilao_registrosParaEnvio, "f"))) { const registros = __classPrivateFieldGet(this, _ClassPilao_registrosParaEnvio, "f")[tabela] || []; const url = this.rotaEnviarRegistros().url; if (__classPrivateFieldGet(this, _ClassPilao_ver_log, "f")) console.log(`[PILÃO]: Enviando ${registros.length} registros na tabela "${tabela}" para "${url}".`); const resp = await this.processarRegistros(url, registros, tabela, "enviar"); if (resp.eErro) return resp; __classPrivateFieldGet(this, _ClassPilao_registrosParaEnvio, "f")[tabela] = []; } return p_respostas_1.respostaComuns.valor(true); }, _ClassPilao_salvarDeletarRegistros = async function _ClassPilao_salvarDeletarRegistros() { for (const tabela of Object.keys(__classPrivateFieldGet(this, _ClassPilao_codigosParaDeletar, "f"))) { const codigos = [...(__classPrivateFieldGet(this, _ClassPilao_codigosParaDeletar, "f")[tabela] || [])]; const url = this.rotaDeletarRegistro().url; const resp = await this.processarRegistros(url, codigos, tabela, "deletar"); if (resp.eErro) return resp; } return p_respostas_1.respostaComuns.valor(true); }; const Pilao = (_) => new ClassPilao(_); exports.Pilao = Pilao;