UNPKG

tuain-bpm-lib

Version:

Servicio de gestión de manejo de procesos de la plataforma Tuain

82 lines (69 loc) 1.53 kB
const { ObjectId } = require('mongodb'); const VARIABLES = 'variables'; const ROLES = 'roles'; function findByParams(paramsObject) { if (!paramsObject) { return null; } let id = null; let paramsQuery = {}; if (typeof paramsObject === 'string') { // No es un objeto con parámetros sino una cadena con un id id = paramsObject; } else { id = paramsObject.id ?? null; delete paramsObject.id; paramsQuery = { ...paramsObject }; } if (id) { paramsQuery._id = ObjectId(id); } return paramsQuery; } function findProcess(procId) { return findByParams(procId); } function findTasks(taskIds) { return { taskId: { $in: taskIds } }; } function findProcesses(procId, name) { const query = {}; (procId) && Object.assign(query, procId); (name) && Object.assign(query, name); return query; } function updateObject(updateInfo) { return { $set: updateInfo, }; } function addToArray(name, array) { return { $addToSet: { [name]: { $each: array } }, }; } function addVariable(varInfo) { return addToArray(VARIABLES, [varInfo]); } function addRole(roleInfo) { return addToArray(ROLES, [roleInfo]); } function removeFromArray(arrayName, id, array) { return { $pull: { [arrayName]: { [id]: { $in: array } } }, }; } function removeVariable(name) { return removeFromArray(VARIABLES, name); } module.exports = { findProcess, findProcesses, updateObject, findTasks, addVariable, addRole, addToArray, removeFromArray, removeVariable, };