74 lines
3.9 KiB
JavaScript
74 lines
3.9 KiB
JavaScript
// ✅ DESPUÉS — Vite inyecta el valor real durante npm run build
|
|
const BASE_URL = import.meta.env.VITE_API_URL || "http://localhost:8000";
|
|
async function get(path, params = {}) {
|
|
const qs = new URLSearchParams(params).toString();
|
|
const url = `${BASE_URL}${path}${qs ? "?" + qs : ""}`;
|
|
const r = await fetch(url);
|
|
if (!r.ok) throw new Error(`Error ${r.status} en ${path}`);
|
|
return r.json();
|
|
}
|
|
|
|
async function postJson(path, body) {
|
|
const r = await fetch(`${BASE_URL}${path}`, {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify(body),
|
|
});
|
|
if (!r.ok) throw new Error(`Error ${r.status} en ${path}`);
|
|
return r.json();
|
|
}
|
|
|
|
async function post(path, params = {}) {
|
|
const qs = new URLSearchParams(params).toString();
|
|
const url = `${BASE_URL}${path}${qs ? "?" + qs : ""}`;
|
|
const r = await fetch(url, { method: "POST" });
|
|
if (!r.ok) throw new Error(`Error ${r.status} en ${path}`);
|
|
return r.json();
|
|
}
|
|
|
|
export const api = {
|
|
periodoActual: () => get("/api/periodo-actual"),
|
|
ocupabilidad: (ano, mes, sede = "TODOS", programa = "TODOS") =>
|
|
get("/api/ocupabilidad", { ano, mes, sede, programa }),
|
|
ocupabilidadAlumnos: (num_indice) =>
|
|
get("/api/ocupabilidad/alumnos", { num_indice }),
|
|
ventas: (ano, mes, sede = "TODOS", programa = "TODOS") => get("/api/ventas", { ano, mes, sede, programa }),
|
|
ventasDetalle: (vendedor, ano, mes, tipo, sede = "TODOS", programa = "TODOS") =>
|
|
get("/api/ventas/detalle", { vendedor, ano, mes, tipo, sede, programa }),
|
|
cobranza: (ano, mes, sectorista = "TODOS", agrupacion = "SEDE") =>
|
|
get("/api/cobranza", { ano, mes, sectorista, agrupacion }),
|
|
cobranzaDetalle: (grupo, ano, mes, sectorista = "TODOS", agrupacion = "PROGRAMA") =>
|
|
get("/api/cobranza/detalle", { grupo, ano, mes, sectorista, agrupacion }),
|
|
rentabilidad: (ano, mes, sede = "TODOS", programa = "TODOS") =>
|
|
get("/api/rentabilidad", { ano, mes, sede, programa }),
|
|
rentabilidadDetalle: (programa, ano, mes) =>
|
|
get("/api/rentabilidad/detalle", { programa, ano, mes }),
|
|
rentabilidadCostos: (programa, ano, mes) =>
|
|
get("/api/rentabilidad/costos", { programa, ano, mes }),
|
|
saldoPendiente: (tipo_cuota) => get("/api/saldo-pendiente", { tipo_cuota }),
|
|
asesores: () => get("/api/asesores"),
|
|
asesorEstado: (agent_id, online) =>
|
|
post("/api/asesores/estado", { agent_id, online }),
|
|
guardarCostos: (num_indice, inicial, actual) =>
|
|
postJson("/api/rentabilidad/costos/guardar", { num_indice, inicial, actual }),
|
|
clasificarSede: (programas) =>
|
|
postJson("/api/cobranza/clasificar-sede", { programas }),
|
|
cobranzaDetalleTodos: (ano, mes, sectorista = "TODOS") =>
|
|
get("/api/cobranza/detalle-todos", { ano, mes, sectorista }),
|
|
usuariosListar: () => get("/api/usuarios"),
|
|
usuariosCrear: (email, password, nombre, rol) =>
|
|
postJson("/api/usuarios/crear", { email, password, nombre, rol }),
|
|
usuariosActualizarRol: (id, rol) => postJson("/api/usuarios/rol", { id, rol }),
|
|
usuariosEliminar: (id) => postJson("/api/usuarios/eliminar", { id }),
|
|
vendedoresManualesListar: (ano, mes) => get("/api/comisiones/vendedores", { ano, mes }),
|
|
vendedoresManualesCrear: (datos) => postJson("/api/comisiones/vendedores/crear", datos),
|
|
vendedoresManualesEliminar: (id) => postJson("/api/comisiones/vendedores/eliminar", { id }),
|
|
vendedoresManualesActualizar: (datos) => postJson("/api/comisiones/vendedores/actualizar", datos),
|
|
vendedoresManualesLote: (datos) => postJson("/api/comisiones/vendedores/lote", datos),
|
|
comisionesOverrideGuardar: (registros) => postJson("/api/comisiones/override/guardar", { registros }),
|
|
comisionesOverrideRestaurar: (num_matricula) => postJson("/api/comisiones/override/restaurar", { num_matricula }),
|
|
comisionesDetalleTodos: (ano, mes) => get("/api/comisiones/detalle-todos", { ano, mes }),
|
|
comisionesConfig: (ano, mes) => get("/api/comisiones/config", { ano, mes }),
|
|
comisionesConfigGuardar: (datos) => postJson("/api/comisiones/config/guardar", datos),
|
|
};
|