tuain-bpm-lib
Version:
Servicio de gestión de manejo de procesos de la plataforma Tuain
121 lines (109 loc) • 4.37 kB
JavaScript
const Joi = require('joi');
const { requestReference } = require('../common');
const newProcess = Joi.object().keys({
data: Joi.object().keys({
name: Joi.string().description('Nombre del proceso'),
description: Joi.string().description('Descripción del proceso'),
}),
_requestReference: requestReference,
});
/**
* variables: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
})).description('Variables del proceso'),
roles: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
})).description('Variables del proceso'),
*/
const updateProcess = Joi.object().keys({
data: Joi.object().keys({
name: Joi.string().description('Nombre del proceso'),
variables: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
})).description('Variables del proceso'),
roles: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
})).description('Variables del proceso'),
}),
_requestReference: requestReference,
});
const getProcesses = Joi.object().keys({
data: Joi.object().keys({
processId: Joi.string().optional().description('identificador del proceso'),
name: Joi.string().optional().description('Nombre del proceso'),
}),
_requestReference: requestReference,
});
const createTask = Joi.object().keys({
data: Joi.object().keys({
processId: Joi.string().description('identificador del proceso'),
taskId: Joi.string().description('identificador de la tarea'),
name: Joi.string().description('Nombre de la tarea'),
type: Joi.string().description('Tipo de la tarea'),
variables: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
required: Joi.boolean().required(),
})).description('Variables del proceso'),
}),
_requestReference: requestReference,
});
const updateTask = Joi.object().keys({
data: Joi.object().keys({
name: Joi.string().description('Nombre de la tarea'),
type: Joi.string().description('Tipo de la tarea'),
variables: Joi.array().items(Joi.object().keys({
name: Joi.string().required(),
type: Joi.string().required(),
required: Joi.boolean().required(),
})).description('Variables del proceso'),
}),
_requestReference: requestReference,
});
const createConnector = Joi.object().keys({
data: Joi.object().keys({
processId: Joi.string().description('identificador del proceso'),
connectorId: Joi.string().description('identificador del conector'),
name: Joi.string().description('Nombre del conector'),
type: Joi.string().description('Tipo del conector'),
outputs: Joi.array().items(Joi.object()).description('Variables del proceso'),
sources: Joi.array().items(Joi.string()).description('identificador de las tareas de inicio'),
destinations: Joi.array().items(Joi.string()).description('identificador de las tareas destino'),
}),
_requestReference: requestReference,
});
const updateConnector = Joi.object().keys({
data: Joi.object().keys({
processId: Joi.string().description('identificador del proceso'),
connectorId: Joi.string().description('identificador del conector'),
name: Joi.string().description('Nombre del conector'),
type: Joi.string().description('Tipo del conector'),
outputs: Joi.array().items(Joi.object()).description('Variables del proceso'),
sources: Joi.array().items(Joi.string()).description('identificador de las tareas de inicio'),
destinations: Joi.array().items(Joi.string()).description('identificador de las tareas destino'),
}),
_requestReference: requestReference,
});
const getManualTasks = Joi.object().keys({
data: Joi.object().keys({
processId: Joi.string().optional().description('identificador del proceso'),
taskId: Joi.string().optional().description('identificador de la tarea'),
instanceId: Joi.string().optional().description('identificador de la instancia'),
}),
_requestReference: requestReference,
});
const schemas = {
newProcess,
updateProcess,
getProcesses,
createTask,
updateTask,
createConnector,
updateConnector,
getManualTasks,
};
module.exports = schemas;