import { Rest } from "../services/rest.js";
/**
* Modelo de la aplicación.
* Se responsabiliza del mantenimiento y gestión de los datos.
* Utiliza el Servicio de Rest.
*/
export class Modelo {
/**
* Realiza el proceso de modificación de un padre.
* @param {Object} datos Datos del padre.
* @return {Promise} Devuelve la promesa asociada a la petición.
*/
modificarPadre(datos) {
return Rest.put('persona', [], datos, false);
}
/**
* Realiza el proceso de dar de alta a un hijo.
* @param {Object} datos Datos del hijo.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
altaHijo(datos) {
return Rest.post('hijos', ['altaHijo'], datos, false);
}
/**
* Realiza el proceso de dar de alta un hijo a un padre mediante PIN.
* @param {Object} datos Datos.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
registrarHijoPin(datos) {
return Rest.post('hijos', ['registrarHijo'], datos, false);
}
/**
* Realiza el proceso de obtener todas las filas de la tabla curso.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerCursos() {
return Rest.get('cursos', [], []);
}
/**
* Realiza el proceso de obtener filas de la tabla festivos.
* @param {Date} inicioMes Primer día del mes.
* @param {Date} finMes Último día del mes.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerFestivos(inicioMes, finMes) {
const queryParams = new Map();
queryParams.set('inicio', inicioMes.getDate() + '-' + (inicioMes.getMonth()+1) + '-' + inicioMes.getFullYear());
queryParams.set('final', finMes.getDate() + '-' + (finMes.getMonth()+1) + '-' + finMes.getFullYear());
return Rest.get('festivos', [], queryParams);
}
/**
* Obtener hijos de un padre.
* @param {Array} id ID del padre.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
dameHijos(id) {
const queryParams = new Map();
queryParams.set('id', id);
return Rest.get('hijos', [], queryParams);
}
/**
* Eliminar fila de las tablas: Persona, Hijo e Hijo_Padre.
* @param {Number} id ID del hijo.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
eliminarHijo(id) {
let datos = ['eliminarHijo', id];
return Rest.delete('hijos', datos);
}
/**
* Eliminar fila de la tabla Hijo_Padre.
* @param {Number} id ID del hijo.
* @param {Number} idPadre ID del padre.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
eliminarRelacionHijo(id, idPadre) {
let datos = ['eliminarRelacion', id, idPadre];
return Rest.delete('hijos', datos);
}
/**
* Llamada para modificar fila de la tabla persona.
* @param {Array} datos Datos a enviar.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
modificarHijo(datos) {
return Rest.put('hijos', [], datos, false);
}
/**
* Llamada para obtener filas de la tabla dias.
* @param {Array} ids Array de IDs a enviar.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerDiasComedor(ids) {
return Rest.get('dias', [], ids);
}
/**
* Llamada para insertar fila a la tabla dias.
* @param {Object} datos Datos a enviar.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
marcarDiaComedor(datos) {
return Rest.post('dias', [], datos, false);
}
/**
* Llamada para borrar fila de la tabla dias.
* @param {Object} datos Datos a enviar.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
desmarcarDiaComedor(datos) {
return Rest.delete('dias', [datos.dia, datos.idPersona, datos.idPadre]);
}
/**
* Llamada para obtener usuarios apuntados al comedor en la fecha.
* @param {String} fecha String de la fecha.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerUsuariosApuntados(fecha) {
const queryParams = new Map();
queryParams.set('proceso', 'usuarios');
queryParams.set('fecha', fecha.getDate() + '-' + (fecha.getMonth()+1) + '-' + fecha.getFullYear());
return Rest.get('secretaria', [], queryParams);
}
/**
* Llamada para obtener las incidencias de los usuarios del comedor de una fecha.
* @param {String} fecha String de la fecha.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerIncidencias(fecha) {
const queryParams = new Map();
queryParams.set('proceso', 'incidencias');
queryParams.set('fecha', fecha.getDate() + '-' + (fecha.getMonth()+1) + '-' + fecha.getFullYear());
return Rest.get('secretaria', [], queryParams);
}
/**
* Llamada para obtener a los usuarios apuntados al comedor en un mes.
* @param {Number} mes Nº del mes.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerUsuariosApuntadosMensual(mes) {
const queryParams = new Map();
queryParams.set('proceso', 'usuariosMes');
queryParams.set('mes', mes);
return Rest.get('secretaria', [], queryParams);
}
/**
* Llamada para obtener las incidencias de los usuarios del comedor de un mes.
* @param {Number} mes Nº del mes.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
obtenerIncidenciasMensual(mes) {
const queryParams = new Map();
queryParams.set('proceso', 'incidenciasMes');
queryParams.set('mes', mes);
return Rest.get('secretaria', [], queryParams);
}
/**
* Llamada para insertar o modificar incidencia.
* @param {String} fecha String de la fecha.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
insertarIncidencia(datos) {
return Rest.put('secretaria', ['incidencia'], datos, false);
}
obtenerListadoPadres(busqueda){
const queryParams = new Map();
queryParams.set('proceso', 'padres');
queryParams.set('busqueda', busqueda);
return Rest.get('secretaria', [], queryParams);
}
modificarPadreSecretaria(datos) {
return Rest.put('secretaria', ['modificarPadre'], datos);
}
/**
* Eliminar padre.
* @param {Number} id ID del padre.
* @returns {Promise} Devuelve la promesa asociada a la petición.
*/
borrarCuentaPadre(id) {
return Rest.delete('padres', [id]);
}
}