"Se adiciona end points. GET data with value y POST data value"
This commit is contained in:
@@ -1905,5 +1905,129 @@ class Cases
|
|||||||
throw $e;
|
throw $e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static $excludeFields = array(
|
||||||
|
"dataFields" => array(
|
||||||
|
"SYS_LANG", "SYS_SKIN", "SYS_SYS", "APPLICATION", "PROCESS",
|
||||||
|
"TASK", "INDEX", "USER_LOGGED", "USR_USERNAME", "PIN"),
|
||||||
|
"dataFieldsPost" => array(
|
||||||
|
"APP_PARENT", "APP_STATUS", "PRO_UID", "APP_PROC_STATUS", "APP_PROC_CODE",
|
||||||
|
"APP_PARALLEL", "APP_INIT_USER", "APP_CUR_USER", "APP_CREATE_DATE", "APP_INIT_DATE",
|
||||||
|
"APP_FINISH_DATE", "APP_UPDATE_DATE", "APP_DATA", "APP_PIN", "APP_DESCRIPTION",
|
||||||
|
"STATUS", "TITLE", "DESCRIPTION", "CREATOR", "CREATE_DATE", "UPDATE_DATE")
|
||||||
|
);
|
||||||
|
|
||||||
|
public static function filterArrayKeys($data, $filter = array())
|
||||||
|
{
|
||||||
|
$result = array();
|
||||||
|
|
||||||
|
foreach ($data as $key => $value) {
|
||||||
|
if (! in_array($key, $filter)) {
|
||||||
|
$result[$key] = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get data
|
||||||
|
*
|
||||||
|
* @param string $applicationUid Unique id of Case
|
||||||
|
*
|
||||||
|
* return array Return an array with Data
|
||||||
|
*/
|
||||||
|
public function getCaseData($applicationUid)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$aFieldsAssoc = array();
|
||||||
|
|
||||||
|
//Verify data
|
||||||
|
Validator::isString($applicationUid, '$app_uid');
|
||||||
|
Validator::appUid($applicationUid, '$app_uid');
|
||||||
|
|
||||||
|
//Set variables
|
||||||
|
$oApp = new \Application();
|
||||||
|
$aFields = $oApp->Load($applicationUid);
|
||||||
|
|
||||||
|
$appData = unserialize($aFields['APP_DATA']);
|
||||||
|
|
||||||
|
$aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData);
|
||||||
|
$aFields = $aFields['APP_DATA'];
|
||||||
|
|
||||||
|
$aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]);
|
||||||
|
|
||||||
|
foreach($aFields as $key => $value) {
|
||||||
|
$aFieldsAssoc[] = array ('name' => $key, 'value' => $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Return
|
||||||
|
return $aFieldsAssoc;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get data non assoc
|
||||||
|
*
|
||||||
|
* @param string $applicationUid Unique id of Case
|
||||||
|
*
|
||||||
|
* return array Return an array with all Data
|
||||||
|
*/
|
||||||
|
public function getCaseDataNonAssoc($applicationUid)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
//Verify data
|
||||||
|
Validator::isString($applicationUid, '$app_uid');
|
||||||
|
Validator::appUid($applicationUid, '$app_uid');
|
||||||
|
|
||||||
|
//Set variables
|
||||||
|
$oApp = new \Application();
|
||||||
|
$aFields = $oApp->Load($applicationUid);
|
||||||
|
|
||||||
|
$appData = unserialize($aFields['APP_DATA']);
|
||||||
|
|
||||||
|
$aFields['APP_DATA'] = \G::array_merges(\G::getSystemConstants(), $appData);
|
||||||
|
$aFields = $aFields['APP_DATA'];
|
||||||
|
|
||||||
|
$aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFields"]);
|
||||||
|
|
||||||
|
//Return
|
||||||
|
return $aFields;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Post data
|
||||||
|
*
|
||||||
|
* @param string $applicationUid Unique id of Case
|
||||||
|
* @param array $data
|
||||||
|
*
|
||||||
|
* return array Return an array with all Data
|
||||||
|
*/
|
||||||
|
public function addCaseData($applicationUid, $data)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Validator::isString($applicationUid, '$app_uid');
|
||||||
|
Validator::appUid($applicationUid, '$app_uid');
|
||||||
|
Validator::isArray($data, '$app_data');
|
||||||
|
|
||||||
|
$case = new \Cases();
|
||||||
|
$aFields = $case->loadCase($applicationUid);
|
||||||
|
|
||||||
|
$data['APP_DATA'] = array_merge($aFields['APP_DATA'], $data);
|
||||||
|
$case->updateCase($applicationUid, $data);
|
||||||
|
|
||||||
|
$aFields = self::filterArrayKeys($aFields, self::$excludeFields["dataFieldsPost"]);
|
||||||
|
$aFields = array_change_key_case($aFields, CASE_LOWER);
|
||||||
|
//Return
|
||||||
|
return $aFields;
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -994,5 +994,63 @@ class Cases extends Api
|
|||||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @url GET /:app_uid/data/non-assoc
|
||||||
|
*
|
||||||
|
* @param string $app_uid {@min 32}{@max 32}
|
||||||
|
*/
|
||||||
|
public function doGetCaseDataNonAssoc($app_uid)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$case = new \ProcessMaker\BusinessModel\Cases();
|
||||||
|
$case->setFormatFieldNameInUppercase(false);
|
||||||
|
|
||||||
|
$response = $case->getCaseDataNonAssoc($app_uid);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @url GET /:app_uid/data
|
||||||
|
*
|
||||||
|
* @param string $app_uid {@min 32}{@max 32}
|
||||||
|
*/
|
||||||
|
public function doGetCaseData($app_uid)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$case = new \ProcessMaker\BusinessModel\Cases();
|
||||||
|
$case->setFormatFieldNameInUppercase(false);
|
||||||
|
|
||||||
|
$response = $case->getCaseData($app_uid);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @url POST /:app_uid/data
|
||||||
|
*
|
||||||
|
* @param string $app_uid {@min 32}{@max 32}
|
||||||
|
* @param array $variables {@from body}
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function doPostCaseData($app_uid, $variables = null)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$cases = new \ProcessMaker\BusinessModel\Cases();
|
||||||
|
|
||||||
|
$response = $cases->addCaseData($app_uid, $variables);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user