Members
-
administrador
-
Usuario que administra el tablero
-
administrador
-
Validación del administrador del tablero. Debe ser una cadena que contenga un ObjectId válido y es obligatorio.
-
administrador
-
Validación del administrador del tablero. Debe ser una cadena que contenga un ObjectId válido y es obligatorio.
-
asignadoA
-
Usuario al que se le ha asignado la tarea
-
asignadoA
-
Validación del usuario asignado a la tarea Debe ser una cadena que contenga el ID del usuario. Puede ser nulo.
-
asignadoA
-
Validación opcional del ID del usuario asignado Puede ser nulo
-
colaboradores
-
Lista de usuarios que colaboran en el proyecto
-
colaboradores
-
Validación de los colaboradores del tablero. Debe ser una lista de cadenas que contengan ObjectIds válidos.
-
colaboradores
-
Validación de los colaboradores del tablero. Debe ser una lista de cadenas que contengan ObjectIds válidos.
-
comentarios
-
Lista de comentarios asociados a la tarea
-
comentarios
-
Validación de los comentarios de la tarea Debe ser una lista con al menos un comentario
-
comentarios
-
Validación opcional del listado de comentarios de la tarea
-
constant createTableroSchema :yup.ObjectSchema
-
Esquema de validación para la creación de un tablero.
-
descripcion
-
Descripción opcional sobre el tablero
-
descripcion
-
Detalle adicional sobre la tarea
-
descripcion
-
Validación de la descripción del tablero. Debe ser una cadena, sin espacios al inicio o final.
-
descripcion
-
Validación de la descripción de la tarea Debe ser una cadena, sin espacios al inicio o final, con al menos 3 caracteres.
-
descripcion
-
Validación de la descripción del tablero. Debe ser una cadena, sin espacios al inicio o final.
-
descripcion
-
Validación opcional de la descripción de la tarea Debe ser una cadena con al menos 3 caracteres si se proporciona
-
email
-
Dirección de correo electrónico única
-
email
-
Validación del correo electrónico del usuario. Debe ser una cadena válida en formato de correo electrónico.
-
email
-
Validación del correo electrónico. Debe ser un string requerido en formato de correo electrónico válido.
-
email
-
Validación opcional del correo electrónico. Debe ser una cadena válida en formato de correo electrónico si se proporciona.
-
estado
-
Estado actual de la tarea
-
estado
-
Validación del estado de la tarea Debe ser "pendiente", "en proceso", "en revisión" o "completada"
-
estado
-
Validación opcional del estado de la tarea Si se proporciona, debe ser "pendiente", "en proceso", "en revisión" o "completada"
-
fecha
-
Fecha en que se realizó el comentario
-
fechaFin
-
Fecha de finalización del proyecto
-
fechaFin
-
Validación de la fecha de finalización del proyecto. Debe ser una fecha válida o nula.
-
fechaFin
-
Validación de la fecha de finalización del proyecto. Debe ser una fecha válida o nula.
-
fechaInicio
-
Fecha de inicio del proyecto
-
fechaInicio
-
Validación de la fecha de inicio del proyecto. Debe ser una fecha válida o nula.
-
fechaInicio
-
Validación de la fecha de inicio del proyecto. Debe ser una fecha válida o nula.
-
fechaLimite
-
Fecha límite para completar la tarea
-
fechaLimite
-
Validación de la fecha límite de la tarea Debe ser posterior a la fecha actual
-
fechaLimite
-
Validación opcional de la fecha límite de la tarea Si se propociona, debe ser posterior a la fecha actual
-
fotoPerfil
-
URL de la foto de perfil almacenada en Cloudinary
-
fotoPerfil
-
Validación de la URL de la foto de perfil. Puede ser nula o una URL válida.
-
fotoPerfil
-
Validación opcional de la URL de la foto de perfil. Puede ser nula o una URL válida si se proporciona.
-
mensaje
-
Mensaje del comentario
-
nombre
-
Nombre del tablero o proyecto
-
nombre
-
Nombre descriptivo de la tarea
-
nombre
-
Nombre completo del usuario
-
nombre
-
Validación del nombre del tablero. Debe ser una cadena, sin espacios al inicio o final, y es obligatorio.
-
nombre
-
Validación del nombre de la tarea. Debe ser una cadena, sin espacios al inicio o final, con al menos 3 caracteres.
-
nombre
-
Validación del nombre del usuario. Debe ser una cadena, sin espacios al inicio o final, con al menos 3 caracteres.
-
nombre
-
Validación del nombre del tablero. Debe ser una cadena, sin espacios al inicio o final, y es obligatorio.
-
nombre
-
Validación opcional del nombre de la tarea Debe ser una cadena con al menos 3 caracteres si se proporciona
-
nombre
-
Validación opcional del nombre del usuario. Debe ser una cadena con al menos 3 caracteres si se proporciona.
-
password
-
Contraseña cifrada del usuario
-
password
-
Validación de la contraseña del usuario. Debe tener al menos 8 caracteres, incluir una letra mayúscula y un número.
-
password
-
Validación de la contraseña. Debe ser un string requerido con al menos 6 caracteres.
-
password
-
Validación opcional de la contraseña. Debe tener al menos 8 caracteres, incluir una letra mayúscula y un número si se proporciona.
-
prioridad
-
Nivel de importancia de la tarea
-
prioridad
-
Validación de la prioridad de la tarea Debe ser "baja", "media" o "alta"
-
prioridad
-
Validación opcional de la prioridad de la tarea Si se proporciona, debe ser "baja", "media" o "alta"
-
rol
-
Rol del usuario: administrador o usuario
-
rol
-
Validación del rol del usuario. Debe ser "administrador" o "usuario".
-
rol
-
Validación opcional del rol del usuario. Si se proporciona, debe ser "administrador" o "usuario".
-
constant schema :yup.ObjectSchema
-
Esquema de validación para la creación de tareas
-
constant schema :yup.ObjectSchema
-
Esquema de validación para la creación de usuarios.
-
constant schema :yup.ObjectSchema
-
Esquema de validación para el inicio de sesión de usuarios.
-
constant schema :yup.ObjectSchema
-
Esquema de validación para la actualización de tareas
-
constant schema :yup.ObjectSchema
-
Esquema de validación para la actualización de usuarios.
-
tablero
-
Tablero al que pertenece la tarea
-
constant tableroSchema
-
Esquema de Tablero para la base de datos. Representa un proyecto colaborativo en el sistema.
Campos:
- nombre: Nombre del tablero o proyecto.
- descripcion: Descripción opcional sobre el tablero.
- fechaInicio: Fecha de inicio del proyecto.
- fechaFin: Fecha de finalización del proyecto.
- administrador: Usuario que administra el tablero.
- colaboradores: Lista de usuarios que colaboran en el proyecto.
Timestamps:
- created_at: Fecha de creación del registro.
- updated_at: Fecha de última actualización del registro.
-
constant tareaSchema
-
Esquema de Tarea para la base de datos. Representa las tareas asociadas a un tablero en el sistema.
Campos:
- nombre: Nombre descriptivo de la tarea.
- descripcion: Detalle adicional sobre la tarea.
- prioridad: Nivel de importancia de la tarea ('baja', 'media', 'alta').
- estado: Estado actual de la tarea ('pendiente', 'en proceso', 'en revisión', 'completada').
- fechaLimite: Fecha límite para completar la tarea.
- asignadoA: Usuario al que se le ha asignado la tarea.
- comentarios: Lista de comentarios asociados a la tarea.
- tablero: Tablero al que pertenece la tarea.
Timestamps:
- created_at: Fecha de creación del registro.
- updated_at: Fecha de última actualización del registro.
-
constant updateTableroSchema :yup.ObjectSchema
-
Esquema de validación para la actualización de un tablero.
-
constant updateTareaValidations
-
Middleware para validar los datos de actualización de tareas
-
usuario
-
Usuario que realizó el comentario
-
constant usuarioSchema
-
Esquema de Usuario para la base de datos. Representa la información básica de los usuarios en el sistema.
Campos:
- nombre: Nombre completo del usuario.
- email: Dirección de correo electrónico única y validada.
- password: Contraseña del usuario almacenada en formato cifrado.
- rol: Rol del usuario, puede ser 'administrador' o 'usuario'.
- fotoPerfil: URL de la foto de perfil del usuario, almacenada en Cloudinary.
Timestamps:
- created_at: Fecha de creación del registro.
- updated_at: Fecha de última actualización del registro.
Methods
-
async addCollaborator(tableroId, userId) → {Promise.<(Object|null)>}
-
Agrega un colaborador a un tablero específico.
Parameters:
Name Type Description tableroIdstring El ID del tablero al que se añadirá el colaborador.
userIdstring El ID del usuario que se añadirá como colaborador.
Returns:
Promise.<(Object|null)> -El tablero actualizado con el nuevo colaborador, o null si no se encuentra el tablero.
-
async create(data) → {Promise.<Object>}
-
Crea un nuevo tablero en la base de datos.
Parameters:
Name Type Description dataObject Datos del tablero a crear.
Returns:
Promise.<Object> -El tablero creado.
-
async create(data) → {Promise.<Object>}
-
Crea una nueva tarea en la base de datos
Parameters:
Name Type Description dataObject Datos de la tarea a crear
Returns:
Promise.<Object> -La tarea creada
-
async create(data) → {Promise.<Object>}
-
Crea un nuevo usuario en la base de datos y en Firebase Authentication. Encripta la contraseña del usuario antes de guardarla y opcionalmente sube la imagen de perfil.
Parameters:
Name Type Description dataObject Datos del usuario a crear.
Properties
Name Type Attributes Description passwordstring Contraseña del usuario que será encriptada.
fotoPerfilObject <optional>
Ruta de la imagen de perfil para subir (opcional).
Returns:
Promise.<Object> -El usuario creado.
-
async createTableroValidations(req, res, next)
-
Middleware para validar la creación de tableros.
Parameters:
Name Type Description reqObject Objeto de solicitud HTTP.
resObject Objeto de respuesta HTTP.
nextfunction Función para pasar al siguiente middleware.
Throws:
-
Si la validación falla, se pasa el error al siguiente middleware.
- Type
- Error
-
-
async createTareaValidations(req, res, next)
-
Moddleware para validar la creación de tareas.
Parameters:
Name Type Description reqObject Objeto de la solicitud HTTP
resObject Objeto de respuesta HTTP
nextfunction Función para pasar al siguiente middleware
Throws:
-
Si la validación falla, se pasa el error al siguiente middleware
- Type
- Error
-
-
customErrorHandler(err, req, res, next)
-
Middleware para manejar errores personalizados y globales en la aplicación.
Este middleware captura y gestiona diferentes tipos de errores, devolviendo respuestas específicas según el tipo de error.
Parameters:
Name Type Description errError Objeto de error capturado.
reqObject Objeto de solicitud HTTP.
resObject Objeto de respuesta HTTP.
nextfunction Función para pasar al siguiente middleware o controlador.
-
async getByAdministrator(administratorId) → {Promise.<(Array.<Object>|null)>}
-
Obtiene un tablero por su administrador.
Parameters:
Name Type Description administratorIdstring Id del usuario administrador.
Returns:
Promise.<(Array.<Object>|null)> -Lista de tableros donde el usuario es administrador o null si no existe.
-
async getByCollaborator(userId) → {Promise.<Array.<Object>>}
-
Obtiene los colaboradores de todos los tableros en los que un usuario es colaborador.
Parameters:
Name Type Description userIdstring Id del usuario colaborador.
Returns:
Promise.<Array.<Object>> -Lista de tableros del colaborador.
-
async getOne(id) → {Promise.<(Object|null)>}
-
Obtiene un tablero por su ID.
Parameters:
Name Type Description idstring ID del tablero.
Returns:
Promise.<(Object|null)> -El tablero encontrado o null si no existe.
-
async getOne(id) → {Promise.<(Object|null)>}
-
Obtiene una tarea por su ID.
Parameters:
Name Type Description idstring ID único de la tarea.
Returns:
Promise.<(Object|null)> -La tarea encontrada o null si no existe.
-
async getOne(id) → {Promise.<(Object|null)>}
-
Obtiene un usuario por su ID.
Parameters:
Name Type Description idstring ID único del usuario.
Returns:
Promise.<(Object|null)> -El usuario encontrado o null si no existe.
-
async getOneByEmailAndPassword(email, password) → {Promise.<(Object|null)>}
-
Obtiene un usuario por su correo electrónico y contraseña.
Parameters:
Name Type Description emailstring Correo electrónico del usuario.
passwordstring Contraseña del usuario.
Returns:
Promise.<(Object|null)> -El usuario encontrado o null si no existe.
-
isProyectoActual(fechaActual, fechaFin) → {boolean}
-
Determina si un proyecto es actual basado en la fecha actual y su fecha de fin.
Parameters:
Name Type Description fechaActualDate Fecha actual.
fechaFinDate Fecha de fin del proyecto.
Returns:
boolean -True si es un proyecto actual, false si está finalizado.
-
isValidDate(fecha) → {boolean}
-
Validación de la fecha
Parameters:
Name Type Description fechaString Fecha para comprobar
Returns:
boolean -True si es una fecha válida o False si no es válida
-
isValidToken(token, invalidTokens) → {boolean}
-
Verifica si un token es válido y no está en la lista de tokens inválidos.
Parameters:
Name Type Description tokenstring El token a verificar.
invalidTokensSet.<string> Conjunto de tokens inválidos.
Returns:
boolean -truesi el token es válido,falseen caso contrario.
-
async list() → {Promise.<Array.<Object>>}
-
Lista todos los tableros ordenados por fecha de creación de forma descendente.
Returns:
Promise.<Array.<Object>> -Lista de tableros.
-
async list() → {Promise.<Array.<Object>>}
-
Lista todas las tereas ordenadas por nombre de forma descendente
Returns:
Promise.<Array.<Object>> -Lista de tareas ordenada.
-
async list() → {Promise.<Array.<Object>>}
-
Lista todos los usuarios ordenados por fecha de creación de forma descendente.
Returns:
Promise.<Array.<Object>> -Lista de usuarios ordenada.
-
async listByLimitDate(tablero, date) → {Promise.<Array.<Object>>}
-
Lista las tareas de un tablero filtradas por una fecha límite
Parameters:
Name Type Description tablerostring Identificador del tablero
datedate Fecha límite para filtrar
Returns:
Promise.<Array.<Object>> -Lista de tareas de un tablero con una fecha límite menor a la fecha pasada
-
async listByPriority(tablero, priority) → {Promise.<Array.<Object>>}
-
Lista las tareas de un tablero filtradas por el valor de la prioridad
Parameters:
Name Type Description tablerostring Identificador del tablero
prioritystring Prioridad para filtrar
Returns:
Promise.<Array.<Object>> -Lista de tareas de un tablero con una prioridad determinada
-
async listByState(tablero, state) → {Promise.<Array.<Object>>}
-
Lista las tareas de un tablero filtradas por el valor del estado
Parameters:
Name Type Description tablerostring Identificador del tablero
statestring Estado para filtrar
Returns:
Promise.<Array.<Object>> -Lista de tareas de un tablero con un estado determinado
-
async listByUserAsigned(tablero, id) → {Promise.<Array.<Object>>}
-
Lista las tareas de un tablero filtradas por el usuario asignado
Parameters:
Name Type Description tablerostring Identificador del tablero
idstring Usuario asignado para filtrar
Returns:
Promise.<Array.<Object>> -Lista de tareas de un tablero con un usuario asignado
-
async loginUsuarioValidations(req, res, next)
-
Middleware para validar los datos del inicio de sesión de usuarios.
Parameters:
Name Type Description reqObject Objeto de solicitud HTTP.
resObject Objeto de respuesta HTTP.
nextfunction Función para pasar al siguiente middleware.
Throws:
-
Si la validación falla, se pasa el error al siguiente middleware.
- Type
- Error
-
-
pathNotFoundHandler(req, res, next)
-
Middleware para manejar rutas no encontradas.
Este middleware se ejecuta cuando una solicitud no coincide con ninguna de las rutas definidas. Devuelve un error 404 con un mensaje indicando que la URL no fue encontrada.
Parameters:
Name Type Description reqObject Objeto de solicitud HTTP.
resObject Objeto de respuesta HTTP.
nextfunction Función para pasar al siguiente middleware o controlador de errores.
-
async remove(id) → {Promise.<(Object|null)>}
-
Elimina un tablero por su ID.
Parameters:
Name Type Description idstring ID del tablero a eliminar.
Returns:
Promise.<(Object|null)> -El tablero eliminado o null si no existe.
-
async remove(id) → {Promise.<(Object|null)>}
-
Elimina una tarea por su ID.
Parameters:
Name Type Description idstring ID único de la tarea a eliminar.
Returns:
Promise.<(Object|null)> -La tarea eliminada o null si no existe.
-
async remove(id) → {Promise.<(Object|null)>}
-
Elimina un usuario por su ID.
Parameters:
Name Type Description idstring ID único del usuario a eliminar.
Returns:
Promise.<(Object|null)> -El usuario eliminado o null si no existe.
-
async removeCollaborator(tableroId, userId) → {Promise.<(Object|null)>}
-
Elimina un colaborador de un tablero específico.
Parameters:
Name Type Description tableroIdstring El ID del tablero del que se eliminará el colaborador.
userIdstring El ID del usuario que se eliminará como colaborador.
Returns:
Promise.<(Object|null)> -El tablero actualizado sin el colaborador eliminado, o null si no se encuentra el tablero.
-
async update(id, data) → {Promise.<(Object|null)>}
-
Actualiza un tablero por su ID con los datos proporcionados.
Parameters:
Name Type Description idstring ID del tablero a actualizar.
dataObject Datos a actualizar.
Returns:
Promise.<(Object|null)> -El tablero actualizado o null si no existe.
-
async update(id, data) → {Promise.<(Object|null)>}
-
Actualiza la tarea por su ID con los datos proporcionados.
Parameters:
Name Type Description idstring ID único de la tarea a actualizar.
dataObject Datos de la tarea a actualizar.
Returns:
Promise.<(Object|null)> -La tarea actualizada o null si no existe.
-
async update(id, data) → {Promise.<(Object|null)>}
-
Actualiza un usuario por su ID con los datos proporcionados en la base de datos y en Firebase Authentication. Si se incluye una nueva contraseña, esta será encriptada. Si se incluye una nueva imagen de perfil, será subida antes de actualizar.
Parameters:
Name Type Description idstring ID único del usuario a actualizar.
dataObject Datos del usuario a actualizar.
Properties
Name Type Attributes Description passwordstring <optional>
Nueva contraseña del usuario (opcional).
fotoPerfilObject <optional>
Nueva imagen de perfil para subir (opcional).
Returns:
Promise.<(Object|null)> -El usuario actualizado o null si no existe.
-
async updateTableroValidations(req, res, next)
-
Middleware para validar la actualización de tableros.
Parameters:
Name Type Description reqObject Objeto de solicitud HTTP.
resObject Objeto de respuesta HTTP.
nextfunction Función para pasar al siguiente middleware.
Throws:
-
Si la validación falla, se pasa el error al siguiente middleware.
- Type
- Error
-
-
async uploadImage(imagePath) → {Promise.<(string|null)>}
-
Sube una imagen a Cloudinary y devuelve la URL segura de la imagen.
Parameters:
Name Type Description imagePathstring Ruta local o URL de la imagen que se desea subir.
Throws:
-
Registra el error en la consola si la subida falla.
- Type
- Error
Returns:
Promise.<(string|null)> -URL segura de la imagen subida o
nullsi ocurre un error.Example
import { uploadImage } from './uploadImageToCloudinary.js'; const imageUrl = await uploadImage('./images/avatar.jpg'); console.log(imageUrl); // https://res.cloudinary.com/<cloud_name>/users/avatar.jpg -
-
validateAsignadoTareaFormat(paramNameopt) → {function}
-
Middleware para validar el formato de un ObjectId de Mongoose.
Parameters:
Name Type Attributes Default Description paramNamestring <optional>
'asignado' Nombre del parámetro en los parámetros del body que contiene el ObjectId.
Returns:
function -Middleware de validación.
-
validateEstadoTareaFormat(paramNameopt) → {function}
-
Middleware para validar el formato del estadp
Parameters:
Name Type Attributes Default Description paramNamestring <optional>
'estado' Nombre del parámetro en los parámetros de la ruta que contiene el estado
Returns:
function -Middleware de validación
-
validateFechaTareaFormat(paramNameopt) → {function}
-
Middleware para validar el formato de la fecha
Parameters:
Name Type Attributes Default Description paramNamestring <optional>
'fecha' Nombre del parámetro en los parámetros de la ruta que contiene la fecha
Returns:
function -Middleware de validación
-
validateObjectIdFormat(paramNameopt) → {function}
-
Middleware para validar el formato de un ObjectId de Mongoose.
Parameters:
Name Type Attributes Default Description paramNamestring <optional>
'id' Nombre del parámetro en los parámetros de la ruta que contiene el ObjectId.
Returns:
function -Middleware de validación.
-
validatePrioridadTareaFormat(paramNameopt) → {function}
-
Middleware para validar el formato de la prioridad
Parameters:
Name Type Attributes Default Description paramNamestring <optional>
'prioridad' Nombre del parámetro en los parámetros de la ruta que contiene la prioridad
Returns:
function -Middleware de validación