diff --git a/workflow/engine/src/BusinessModel/Cases.php b/workflow/engine/src/BusinessModel/Cases.php index fb1d10f9b..cdd0dd79b 100644 --- a/workflow/engine/src/BusinessModel/Cases.php +++ b/workflow/engine/src/BusinessModel/Cases.php @@ -1308,4 +1308,44 @@ class Cases $oCriteria->addDescendingOrderByColumn('CREATE_DATE'); return $oCriteria; } + + /** + * Get Case Variables + * + * @access public + * @param string $app_uid, Uid for case + * @return array + * + * @author Brayan Pereyra (Cochalo) + * @copyright Colosa - Bolivia + */ + public function getCaseVariables($app_uid) { + Validator::isString($app_uid, '$app_uid'); + Validator::appUid($app_uid, '$app_uid'); + + $case = new \Cases(); + $fields = $case->loadCase($app_uid); + return $fields['APP_DATA']; + } + + /** + * Put Set Case Variables + * + * @access public + * @param string $app_uid, Uid for case + * @param array $app_data, Data for case variables + * + * @author Brayan Pereyra (Cochalo) + * @copyright Colosa - Bolivia + */ + public function putCaseVariables($app_uid, $app_data) { + Validator::isString($app_uid, '$app_uid'); + Validator::appUid($app_uid, '$app_uid'); + Validator::isArray($app_data, '$app_data'); + + $case = new \Cases(); + $fields = $case->loadCase($app_uid); + $data = array_merge($fields['APP_DATA'], array('APP_DATA' => $app_data)); + $case->updateCase($app_uid, $data); + } } \ No newline at end of file diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Cases.php b/workflow/engine/src/Services/Api/ProcessMaker/Cases.php index 822c4e5af..54225af89 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Cases.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Cases.php @@ -721,7 +721,7 @@ class Cases extends Api * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * - * @url PUT /:cas_uid/cancel-case + * @url PUT /:cas_uid/cancel */ public function doPutCancelCase($cas_uid) { @@ -743,7 +743,7 @@ class Cases extends Api * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * - * @url PUT /:cas_uid/pause-case + * @url PUT /:cas_uid/pause */ public function doPutPauseCase($cas_uid, $unpaused_date = null) { @@ -768,7 +768,7 @@ class Cases extends Api * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia * - * @url PUT /:cas_uid/unpause-case + * @url PUT /:cas_uid/unpause */ public function doPutUnpauseCase($cas_uid) { @@ -822,5 +822,47 @@ class Cases extends Api throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } + + /** + * Get Case Variables + * + * @param string $app_uid {@min 1}{@max 32} + * + * @author Brayan Pereyra (Cochalo) + * @copyright Colosa - Bolivia + * + * @url GET /:app_uid/variables + */ + public function doGetCaseVariables($app_uid) + { + try { + $cases = new \BusinessModel\Cases(); + $response = $cases->getCaseVariables($app_uid); + return $response; + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } + + /** + * Put Case Variables + * + * @param string $app_uid {@min 1}{@max 32} + * @param array $request_data + * + * @author Brayan Pereyra (Cochalo) + * @copyright Colosa - Bolivia + * + * @url PUT /:app_uid/variables + */ + public function doPutCaseVariables($app_uid, $request_data) + { + try { + $cases = new \BusinessModel\Cases(); + $cases->putCaseVariables($app_uid, $request_data); + } catch (\Exception $e) { + throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); + } + } }