Merged in darojas/processmaker (pull request #612)
Se adiciona el end point /project/{prj_uid}/dynaform/{dyn_uid}/fields - refactored
This commit is contained in:
@@ -1001,5 +1001,168 @@ class DynaForm
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get data of a DynaForm
|
||||
*
|
||||
* @param string $projectUid Unique id of Project
|
||||
* @param string $dynaFormUid Unique id of DynaForm
|
||||
*
|
||||
* return array Return an array with data of a DynaForm
|
||||
*/
|
||||
public function getDynaFormFields($projectUid, $dynaFormUid)
|
||||
{
|
||||
try {
|
||||
$arrayVariables = array();
|
||||
//Verify data
|
||||
Validator::proUid($projectUid, '$prj_uid');
|
||||
$this->throwExceptionIfNotExistsDynaForm($dynaFormUid, "", $this->arrayFieldNameForException["dynaFormUid"]);
|
||||
|
||||
//Get data
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\DynaformPeer::DYN_CONTENT);
|
||||
$criteria->add(\DynaformPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL);
|
||||
$rsCriteria = \DynaformPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$rsCriteria->next();
|
||||
|
||||
$aRow = $rsCriteria->getRow();
|
||||
$contentDecode = json_decode($aRow['DYN_CONTENT'],true);
|
||||
|
||||
$content = $contentDecode['items'][0]['items'];
|
||||
|
||||
foreach ($content as $key => $value) {
|
||||
|
||||
$valueType = (isset($value[0]["valueType"])) ? $value[0]["valueType"]:null;
|
||||
$maxLength = (isset($value[0]["maxLength"])) ? $value[0]["maxLength"]:null;
|
||||
$label = (isset($value[0]["label"])) ? $value[0]["label"]:null;
|
||||
$defaultValue = (isset($value[0]["defaultValue"])) ? $value[0]["defaultValue"]:null;
|
||||
$required = (isset($value[0]["required"])) ? $value[0]["required"]:null;
|
||||
$dbConnection = (isset($value[0]["dbConnection"])) ? $value[0]["dbConnection"]:null;
|
||||
$sql = (isset($value[0]["sql"])) ? $value[0]["sql"]:null;
|
||||
$options = (isset($value[0]["options"])) ? $value[0]["options"]:null;
|
||||
//fields properties
|
||||
$type = (isset($value[0]["type"])) ? $value[0]["type"]:null;
|
||||
$colSpan = (isset($value[0]["colSpan"])) ? $value[0]["colSpan"]:null;
|
||||
$name = (isset($value[0]["name"])) ? $value[0]["name"]:null;
|
||||
$readonly = (isset($value[0]["readonly"])) ? $value[0]["readonly"]:null;
|
||||
$hint = (isset($value[0]["hint"])) ? $value[0]["hint"]:null;
|
||||
$dependentsField = (isset($value[0]["dependentsField"])) ? $value[0]["dependentsField"]:null;
|
||||
$placeHolder = (isset($value[0]["placeHolder"])) ? $value[0]["placeHolder"]:null;
|
||||
$pickType = (isset($value[0]["pickType"])) ? $value[0]["pickType"]:null;
|
||||
|
||||
if (isset($value[0]["variable"])) {
|
||||
$variable = $value[0]["variable"];
|
||||
|
||||
$criteria = new \Criteria("workflow");
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_UID);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::PRJ_UID);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NAME);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_FIELD_TYPE);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_FIELD_SIZE);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_LABEL);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DBCONNECTION);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_SQL);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT);
|
||||
$criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES);
|
||||
$criteria->add(\ProcessVariablesPeer::PRJ_UID, $projectUid, \Criteria::EQUAL);
|
||||
$criteria->add(\ProcessVariablesPeer::VAR_NAME, $variable, \Criteria::EQUAL);
|
||||
$rsCriteria = \ProcessVariablesPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$rsCriteria->next();
|
||||
|
||||
while ($aRow = $rsCriteria->getRow()) {
|
||||
|
||||
if ($valueType == null && $valueType == '') {
|
||||
$valueTypeMerged = $aRow['VAR_FIELD_TYPE'];
|
||||
} else {
|
||||
$valueTypeMerged = $valueType;
|
||||
}
|
||||
if ($maxLength == null && $maxLength == '') {
|
||||
$maxLengthMerged = (int)$aRow['VAR_FIELD_SIZE'];
|
||||
} else {
|
||||
$maxLengthMerged = $maxLength;
|
||||
}
|
||||
if ($label == null && $label == '') {
|
||||
$labelMerged = $aRow['VAR_LABEL'];
|
||||
} else {
|
||||
$labelMerged = $label;
|
||||
}
|
||||
if ($defaultValue == null && $defaultValue == '') {
|
||||
$defaultValueMerged = $aRow['VAR_DEFAULT'];
|
||||
} else {
|
||||
$defaultValueMerged = $defaultValue;
|
||||
}
|
||||
if ($required == null && $required == '') {
|
||||
$requiredMerged = ($aRow['VAR_NULL']==1) ? true:false;
|
||||
} else {
|
||||
$requiredMerged = $required;
|
||||
}
|
||||
if ($dbConnection == null && $dbConnection == '') {
|
||||
$dbConnectionMerged = $aRow['VAR_DBCONNECTION'];
|
||||
} else {
|
||||
$dbConnectionMerged = $dbConnection;
|
||||
}
|
||||
if ($sql == null && $sql == '') {
|
||||
$sqlMerged = $aRow['VAR_SQL'];
|
||||
} else {
|
||||
$sqlMerged = $sql;
|
||||
}
|
||||
if ($options == null && $options == '') {
|
||||
$optionsMerged = $aRow['VAR_ACCEPTED_VALUES'];
|
||||
} else {
|
||||
$optionsMerged = $options;
|
||||
}
|
||||
|
||||
$arrayVariables[] = array( 'variable' => $variable,
|
||||
'valueType' => $valueTypeMerged,
|
||||
'maxLength' => $maxLengthMerged,
|
||||
'label' => $labelMerged,
|
||||
'defaultValue' => $defaultValueMerged,
|
||||
'required' => $requiredMerged,
|
||||
'dbConnection' => $dbConnectionMerged,
|
||||
'sql' => $sqlMerged,
|
||||
'options' => $optionsMerged,
|
||||
//values from fields properties
|
||||
'type' => $type,
|
||||
'colSpan' => $colSpan,
|
||||
'name' => $name,
|
||||
'readonly' => $readonly,
|
||||
'hint' => $hint,
|
||||
'dependentsField' => $dependentsField,
|
||||
'placeHolder' => $placeHolder,
|
||||
'pickType' => $pickType);
|
||||
$rsCriteria->next();
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
$arrayVariables[] = array( 'valueType' => $valueType,
|
||||
'maxLength' => $maxLength,
|
||||
'label' => $label,
|
||||
'defaultValue' => $defaultValue,
|
||||
'required' => $required,
|
||||
'dbConnection' => $dbConnection,
|
||||
'sql' => $sql,
|
||||
'options' => $options,
|
||||
'type' => $type,
|
||||
'colSpan' => $colSpan,
|
||||
'name' => $name,
|
||||
'readonly' => $readonly,
|
||||
'hint' => $hint,
|
||||
'dependentsField' => $dependentsField,
|
||||
'placeHolder' => $placeHolder,
|
||||
'pickType' => $pickType);
|
||||
}
|
||||
}
|
||||
//Return
|
||||
return $arrayVariables;
|
||||
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -92,5 +92,25 @@ class DynaForm extends Api
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url GET /:prj_uid/dynaform/:dyn_uid/fields
|
||||
*
|
||||
* @param string $dyn_uid {@min 32}{@max 32}
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doGetDynaFormFields($dyn_uid, $prj_uid)
|
||||
{
|
||||
try {
|
||||
$dynaForm = new \ProcessMaker\BusinessModel\DynaForm();
|
||||
$dynaForm->setFormatFieldNameInUppercase(false);
|
||||
|
||||
$response = $dynaForm->getDynaFormFields($prj_uid, $dyn_uid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user