ProcessMaker-MA "Process Variables (fixes & behat)"

- Se han agregado validaciones faltantes
- Se han implementado los siguientes features (behat):
    GET /api/1.0/{workspace}/project/{prj_uid}/variables
    GET /api/1.0/{workspace}/project/{prj_uid}/grid/variables
    GET /api/1.0/{workspace}/project/{prj_uid}/grid/{grid_uid}/variables
This commit is contained in:
Victor Saisa Lopez
2014-02-14 11:53:49 -04:00
parent 77ecb35ff0
commit 69c9945bcd
5 changed files with 88 additions and 12 deletions

View File

@@ -237,6 +237,32 @@ class DynaForm
}
}
/**
* Verify if not is grid DynaForm
*
* @param string $dynaFormUid Unique id of DynaForm
* @param string $fieldNameForException Field name for the exception
*
* return void Throw exception if not is grid DynaForm
*/
public function throwExceptionIfNotIsGridDynaForm($dynaFormUid, $fieldNameForException)
{
try {
//Load DynaForm
$dynaForm = new \Dynaform();
$arrayDynaFormData = $dynaForm->Load($dynaFormUid);
if ($arrayDynaFormData["DYN_TYPE"] != "grid") {
$msg = str_replace(array("{0}", "{1}"), array($fieldNameForException, $dynaFormUid), "The DynaForm with {0}: {1}, not is grid");
throw (new \Exception($msg));
}
} catch (\Exception $e) {
throw $e;
}
}
/**
* Create DynaForm for a Process
*

View File

@@ -1569,6 +1569,7 @@ class Process
$dynaForm = new \BusinessModel\DynaForm();
$dynaForm->throwExceptionIfNotExistsDynaForm($gridUid, $processUid, $this->arrayFieldNameForException["gridUid"]);
$dynaForm->throwExceptionIfNotIsGridDynaForm($gridUid, $this->arrayFieldNameForException["gridUid"]);
//Get data
$file = PATH_DYNAFORM . $processUid . PATH_SEP . $gridUid . ".xml";

View File

@@ -7,9 +7,12 @@ class WebEntry
"TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid"),
"DYN_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "dynaFormUid"),
"METHOD" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("WS", "HTML"), "fieldNameAux" => "method"),
"INPUT_DOCUMENT_ACCESS" => array("type" => "int", "required" => true, "empty" => false, "defaultValues" => array(0, 1), "fieldNameAux" => "inputDocumentAccess"),
"USR_USERNAME" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "userUsername"),
"USR_PASSWORD" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "userPassword")
"INPUT_DOCUMENT_ACCESS" => array("type" => "int", "required" => true, "empty" => false, "defaultValues" => array(0, 1), "fieldNameAux" => "inputDocumentAccess")
);
private $arrayUserFieldDefinition = array(
"USR_USERNAME" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "userUsername"),
"USR_PASSWORD" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "userPassword")
);
private $formatFieldNameInUppercase = true;
@@ -29,6 +32,10 @@ class WebEntry
foreach ($this->arrayFieldDefinition as $key => $value) {
$this->arrayFieldNameForException[$value["fieldNameAux"]] = $key;
}
foreach ($this->arrayUserFieldDefinition as $key => $value) {
$this->arrayFieldNameForException[$value["fieldNameAux"]] = $key;
}
} catch (\Exception $e) {
throw $e;
}
@@ -279,13 +286,7 @@ class WebEntry
$projectUser = new \BusinessModel\ProjectUser();
if ($arrayData["METHOD"] == "WS") {
if (!isset($arrayData["USR_USERNAME"])) {
throw (new \Exception(str_replace(array("{0}"), array($this->arrayFieldNameForException["userUsername"]), "The \"{0}\" attribute is not defined")));
}
if (!isset($arrayData["USR_PASSWORD"])) {
throw (new \Exception(str_replace(array("{0}"), array($this->arrayFieldNameForException["userPassword"]), "The \"{0}\" attribute is not defined")));
}
$process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayUserFieldDefinition, $this->arrayFieldNameForException, true);
$loginData = $projectUser->userLogin($arrayData["USR_USERNAME"], $arrayData["USR_PASSWORD"]);

View File

@@ -425,9 +425,8 @@ class Project extends Api
* @url GET /:prj_uid/grid/:grid_uid/variables
*
* @param string $prj_uid {@min 32}{@max 32}
* @param string $grid_uid
*/
public function doGetGridVariablesByGridUid($prj_uid, $grid_uid = "")
public function doGetGridVariables($prj_uid, $grid_uid = "")
{
try {
$process = new \BusinessModel\Process();