108 lines
7.1 KiB
JavaScript
108 lines
7.1 KiB
JavaScript
const express = require('express');
|
|
const rutas = express.Router();
|
|
|
|
const controladorClientes = require('../controladores/controlador_Clientes');
|
|
const controladorMembresias = require('../controladores/controlador_Clientes_Membresias');
|
|
const controladorMiembros = require('../controladores/controlador_Clientes_Miembros');
|
|
const controladorAreas = require('../controladores/controlador_Areas'); // Controlador para áreas de configuración
|
|
const controladorVisitas = require('../controladores/controlador_Clientes_MiembrosVisitas'); // Controlador para visitas de miembros
|
|
|
|
//indice inical
|
|
rutas.get('/clientes', controladorClientes.ver);//ver lista de clientes
|
|
|
|
//ver listar clientes /formulario/:varNomCampoDb, controlador clase.funcion
|
|
rutas.get('/clientJson/:client_rucCed', controladorClientes.verClientJson);//ver cliente en modo json/get
|
|
rutas.get('/verClientesJsonApp', controladorClientes.verClientesJsonApp);//ver cliente en modo json/get
|
|
rutas.post('/verClientJsonPost/:client_rucCed', controladorClientes.verClientJsonPost);//ver cliente en mod json
|
|
|
|
rutas.get('/buscarClienteForm/:client_rucCed', controladorClientes.verClientForm);//ver cliente en tab form
|
|
|
|
//modificar clientes
|
|
rutas.get('/actCliente/:client_id', controladorClientes.VerClienteA_Modificar);//carga el cliente
|
|
rutas.post('/actCliente/:client_id', controladorClientes.modificaCliente);//actualiza el cliente
|
|
//eliminar clientes
|
|
rutas.get('/eliminarCliente/:client_id', controladorClientes.eliminarCliente);
|
|
//almacena cliente
|
|
rutas.post('/addCliente', controladorClientes.guardaCliente);//almacena en bd el nuevo cliente: https://app.factura-e.net/addCliente
|
|
rutas.get('/addClienteForm', controladorClientes.verFormNclientes);//muesta form para crear cliente
|
|
//*** Consultas de clientes(/consultaClientesJson?consulta=dato) donde dato puede ser nombre, ruc, cedula;
|
|
rutas.get('/consultaClientesJson', controladorClientes.app_pedidos_clientes);//consulta clientes: /consultaClientesJson?consulta=dato
|
|
rutas.get('/consulta_clientesApps', controladorClientes.consulta_clientesApps);
|
|
rutas.get('/busquedaSRI/', controladorClientes.buscarCli_sri);//API consulta clientes
|
|
|
|
//API CONSULTA CLIENTES: https://NAME_SERVER/api_consultaClientes?id=numero_rucOcedula => https://app.factura-e.net/api_consultaClientes?id=0701637498001
|
|
rutas.get('/api_consultaClientes/', controladorClientes.api_consultaCliente);//API consulta clientes
|
|
|
|
// --- NUEVAS RUTAS RESTful para CLIENTES (para el frontend Vue) ---
|
|
// Obtener un cliente por su client_rucCed (para EditarCliente.vue)
|
|
rutas.get('/api/clientes/:client_rucCed', controladorClientes.obtenerClienteJsonPorId); // Nuevo endpoint RESTful GET
|
|
// Crear un nuevo cliente (para NuevoCliente.vue)
|
|
rutas.post('/api/clientes', controladorClientes.crearClienteJson); // Nuevo endpoint RESTful POST
|
|
// Actualizar un cliente existente (para EditarCliente.vue)
|
|
rutas.put('/api/clientes/:client_rucCed', controladorClientes.actualizarClienteJson); // Nuevo endpoint RESTful PUT
|
|
// Eliminar un cliente (para ListaClientes.vue)
|
|
rutas.delete('/api/clientes/:client_rucCed', controladorClientes.eliminarClienteJson); // Nuevo endpoint RESTful DELETE
|
|
|
|
// --- Rutas RESTful para TIPOS de Membresías (tabla 'clientes_membresias') ---
|
|
// Estas rutas apuntarán al nuevo controlador_Membresias
|
|
rutas.get('/api/tipos-membresia', controladorMembresias.listarTiposMembresia);
|
|
rutas.get('/api/tipos-membresia/:id', controladorMembresias.obtenerTipoMembresiaPorId);
|
|
rutas.post('/api/tipos-membresia', controladorMembresias.crearTipoMembresia);
|
|
rutas.put('/api/tipos-membresia/:id', controladorMembresias.actualizarTipoMembresia);
|
|
rutas.delete('/api/tipos-membresia/:id', controladorMembresias.eliminarTipoMembresia);
|
|
|
|
// --- Rutas RESTful para MIEMBROS (tabla 'clientes_miembros') ---
|
|
// Estas rutas apuntarán al nuevo controlador_Miembros
|
|
// Obtener todos los miembros
|
|
rutas.get('/api/miembros', controladorMiembros.listarMiembros);
|
|
// Obtener un miembro por su ID
|
|
rutas.get('/api/miembros/:id_miembro', controladorMiembros.obtenerMiembroPorId);
|
|
// Crear un nuevo miembro
|
|
// Datos esperados en el cuerpo de la solicitud: matricula, client_id, id_tipo_membresia, fecha_inicio, fecha_fin, etc.
|
|
rutas.post('/api/miembros', controladorMiembros.crearMiembro);
|
|
// Actualizar un miembro existente por su ID
|
|
// Datos esperados en el cuerpo de la solicitud para actualizar: estado, fechas, etc.
|
|
rutas.put('/api/miembros/:id_miembro', controladorMiembros.actualizarMiembro);
|
|
// Eliminar (lógicamente/cambiar estado a CANCELADO/SUSPENDIDO) un miembro por su ID
|
|
// NOTA: Dada la importancia del historial, es más común cambiar el estado a 'CANCELADO' o 'SUSPENDIDO'
|
|
// en lugar de una eliminación física. El controlador debería manejar esto.
|
|
rutas.delete('/api/miembros/:id_miembro', controladorMiembros.eliminarMiembro);
|
|
|
|
// --- Rutas Adicionales Comunes para Miembros (Opcional) ---
|
|
// Obtener miembros por client_id (útil para ver todas las membresías de un cliente)
|
|
rutas.get('/api/clientes/:client_id/miembros', controladorMiembros.listarMiembrosPorCliente);
|
|
// Obtener miembros por estado (ej. 'ACTIVO', 'VENCIDO')
|
|
rutas.get('/api/miembros/estado/:estado', controladorMiembros.listarMiembrosPorEstado);
|
|
// Obtener miembros por tipo de membresía
|
|
rutas.get('/api/tipos-membresia/:id_tipo_membresia/miembros', controladorMiembros.listarMiembrosPorTipoMembresia);
|
|
|
|
/// --- Rutas RESTful para VISITAS UNIFICADAS (tabla 'clientes_visitas') ---
|
|
// Estas rutas apuntarán al nuevo controlador_ClientesVisitas
|
|
// Registrar una nueva visita (para miembro o ocasional)
|
|
rutas.post('/api/visitas', controladorVisitas.crearVisita); // Renombrado a 'crearVisita'
|
|
// Obtener todas las visitas (con posibilidad de filtros, cuidado con volumen)
|
|
rutas.get('/api/visitas', controladorVisitas.listarVisitas);
|
|
// Obtener una visita específica por su ID
|
|
rutas.get('/api/visitas/:id_visita', controladorVisitas.obtenerVisitaPorId);
|
|
// Actualizar una visita existente (ej. corregir observaciones, cambiar estado si se permite)
|
|
rutas.put('/api/visitas/:id_visita', controladorVisitas.actualizarVisita);
|
|
// Eliminar lógicamente una visita (ej. marcar como 'ANULADA' si tuvieras ese estado)
|
|
rutas.delete('/api/visitas/:id_visita', controladorVisitas.eliminarVisita); // Implementación para una eliminación lógica
|
|
// Rutas de consulta específicas para visitas
|
|
rutas.get('/api/visitas/por-cliente/:client_id', controladorVisitas.listarVisitasPorCliente);
|
|
rutas.get('/api/visitas/por-miembro/:id_miembro', controladorVisitas.listarVisitasPorMiembro);
|
|
rutas.get('/api/visitas/estado/:estado_acceso', controladorVisitas.listarVisitasPorEstadoAcceso);
|
|
rutas.get('/api/visitas/area/:nombre_area', controladorVisitas.listarVisitasPorArea);
|
|
|
|
// Rutas para la administración de Áreas de Acceso
|
|
rutas.get('/api/areas', controladorAreas.listarAreas);
|
|
rutas.get('/api/areas/:id', controladorAreas.obtenerAreaPorId);
|
|
rutas.post('/api/areas', controladorAreas.crearArea);
|
|
rutas.put('/api/areas/:id', controladorAreas.actualizarArea);
|
|
rutas.put('/api/areas/:id/inactivar', controladorAreas.inactivarArea); // Ruta específica para inactivar
|
|
|
|
// Ruta para obtener ciudades
|
|
rutas.get('/api/ciudades', controladorClientes.obtenerCiudades);
|
|
|
|
module.exports = rutas;
|