87 lines
4.9 KiB
JavaScript
87 lines
4.9 KiB
JavaScript
// src/lib/api.js
|
|
// Cliente para el backend FastAPI. Cambia BASE_URL si el backend corre en otra IP.
|
|
const BASE_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"),
|
|
ultimaActualizacion: () => get("/api/ultima-actualizacion"),
|
|
cacheRefresh: () => post("/api/cache/refresh"),
|
|
cacheRefreshManual: (clave) => post("/api/cache/refresh-manual", clave ? { clave } : {}),
|
|
precargaModulo: (modulo, ano) => post("/api/precarga/modulo", { modulo, ano }),
|
|
precargaEstado: (modulo) => get("/api/precarga/estado", { modulo }),
|
|
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", con_overrides = false) => get("/api/ventas", { ano, mes, sede, programa, con_overrides }),
|
|
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", sede_filtro = "TODOS", prog_filtro = "TODOS", venc_hasta = "TODOS") =>
|
|
get("/api/cobranza", { ano, mes, sectorista, agrupacion, sede_filtro, prog_filtro, venc_hasta }),
|
|
cobranzaDetalle: (grupo, ano, mes, sectorista = "TODOS", agrupacion = "PROGRAMA", prog_filtro = "TODOS", sede_filtro = "TODOS", venc_hasta = "TODOS") =>
|
|
get("/api/cobranza/detalle", { grupo, ano, mes, sectorista, agrupacion, prog_filtro, sede_filtro, venc_hasta }),
|
|
alumnoEstado: (matricula) => get("/api/alumno/estado", { matricula }),
|
|
alumnosPorRetirar: () => get("/api/alumnos/por-retirar"),
|
|
alumnoEstadoGuardar: (matricula, estado, observaciones, usuario) =>
|
|
postJson("/api/alumno/estado/guardar", { matricula, estado, observaciones, usuario }),
|
|
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 }),
|
|
clasificarFull: (programas) =>
|
|
postJson("/api/cobranza/clasificar-full", { 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),
|
|
};
|