tuain-bpm-lib
Version:
Servicio de gestión de manejo de procesos de la plataforma Tuain
82 lines (69 loc) • 1.53 kB
JavaScript
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,
};