Merged in victorsl/processmaker (pull request #17)

ProcessMaker-MA "2170 Project Properties - Step resources"
This commit is contained in:
erik ao
2013-12-02 17:07:21 -04:00
4 changed files with 537 additions and 177 deletions

View File

@@ -0,0 +1,201 @@
<?php
namespace BusinessModel;
class Step
{
/**
* Create Step of an Task
*
* @param string $taskUid
* @param string $processUid
* @param array $arrayData
*
* return string Unique id of the new Step
*/
public function create($taskUid, $processUid, $arrayData)
{
try {
$step = new \Step();
$stepUid = $step->create(array("PRO_UID" => $processUid, "TAS_UID" => $taskUid));
if (!isset($arrayData["step_position"]) || $arrayData["step_position"] == "") {
$arrayData["step_position"] = $step->getNextPosition($taskUid) - 1;
}
$this->update($stepUid, $arrayData);
return $stepUid;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Update Step of an Task
*
* @param string $stepUid
* @param array $arrayData
*
* return void
*/
public function update($stepUid, $arrayData)
{
try {
$step = new \Step();
$arrayUpdateData = array();
$arrayUpdateData["STEP_UID"] = $stepUid;
if (isset($arrayData["step_type_obj"]) && $arrayData["step_type_obj"] != "") {
$arrayUpdateData["STEP_TYPE_OBJ"] = $arrayData["step_type_obj"];
}
if (isset($arrayData["step_uid_obj"]) && $arrayData["step_uid_obj"] != "") {
$arrayUpdateData["STEP_UID_OBJ"] = $arrayData["step_uid_obj"];
}
if (isset($arrayData["step_condition"])) {
$arrayUpdateData["STEP_CONDITION"] = $arrayData["step_condition"];
}
if (isset($arrayData["step_position"]) && $arrayData["step_position"] != "") {
$arrayUpdateData["STEP_POSITION"] = (int)($arrayData["step_position"]);
}
if (isset($arrayData["step_mode"]) && $arrayData["step_mode"] != "") {
$arrayUpdateData["STEP_MODE"] = $arrayData["step_mode"];
}
$step->update($arrayUpdateData);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Delete Step of an Task
*
* @param string $stepUid
*
* return void
*/
public function delete($stepUid)
{
try {
//Get position
$criteria = new \Criteria("workflow");
$criteria->add(\StepPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
$rsCriteria = \StepPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$position = (int)($row["STEP_POSITION"]);
//Delete
$step = new \Step();
$step->reOrder($stepUid, $position);
$step->remove($stepUid);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get data of an Step
*
* @param string $stepUid Unique id of the Step
*
* return array
*/
public function getStep($stepUid)
{
try {
$arrayStep = array();
//Call plugin
$pluginRegistry = &\PMPluginRegistry::getSingleton();
$externalSteps = $pluginRegistry->getSteps();
$criteria = new \Criteria("workflow");
$criteria->add(\StepPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
$rsCriteria = \StepPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$titleObj = "";
$descriptionObj = "";
switch ($row["STEP_TYPE_OBJ"]) {
case "DYNAFORM":
$dynaform = new \Dynaform();
$arrayData = $dynaform->load($row["STEP_UID_OBJ"]);
$titleObj = $arrayData["DYN_TITLE"];
$descriptionObj = $arrayData["DYN_DESCRIPTION"];
break;
case "INPUT_DOCUMENT":
$inputDocument = new \InputDocument();
$arrayData = $inputDocument->getByUid($row["STEP_UID_OBJ"]);
if ($arrayData === false) {
return $arrayStep;
}
$titleObj = $arrayData["INP_DOC_TITLE"];
$descriptionObj = $arrayData["INP_DOC_DESCRIPTION"];
break;
case "OUTPUT_DOCUMENT":
$outputDocument = new \OutputDocument();
$arrayData = $outputDocument->getByUid($row["STEP_UID_OBJ"]);
if ($arrayData === false) {
return $arrayStep;
}
$titleObj = $arrayData["OUT_DOC_TITLE"];
$descriptionObj = $arrayData["OUT_DOC_DESCRIPTION"];
break;
case "EXTERNAL":
$titleObj = "unknown " . $row["STEP_UID"];
if (is_array($externalSteps) && count($externalSteps) > 0) {
foreach ($externalSteps as $key => $value) {
if ($value->sStepId == $row["STEP_UID_OBJ"]) {
$titleObj = $value->sStepTitle;
}
}
}
break;
}
$arrayStep = array(
"step_uid" => $stepUid,
"step_type_obj" => $row["STEP_TYPE_OBJ"],
"step_uid_obj" => $row["STEP_UID_OBJ"],
"step_condition" => $row["STEP_CONDITION"],
"step_position" => $row["STEP_POSITION"],
"step_mode" => $row["STEP_MODE"],
"obj_title" => $titleObj,
"obj_description" => $descriptionObj
);
return $arrayStep;
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -151,7 +151,7 @@ class Task
//Copy of processmaker/workflow/engine/methods/tasks/tasks_Ajax.php //case "saveTaskData":
try {
if (isset($arrayProperty['properties'])) {
$arrayProperty = array_change_key_case($arrayProperty['properties'], CASE_UPPER);
$arrayProperty = array_change_key_case($arrayProperty['properties'], CASE_UPPER);
}
$arrayProperty["TAS_UID"] = $taskUid;
$arrayProperty["PRO_UID"] = $processUid;
@@ -208,7 +208,7 @@ class Task
$arrayProperty["TAS_ASSIGN_TYPE"] = "SELF_SERVICE";
if (trim($arrayProperty["TAS_GROUP_VARIABLE"]) == "") {
$arrayProperty["TAS_GROUP_VARIABLE"] = "@@SYS_GROUP_TO_BE_ASSIGNED";
$arrayProperty["TAS_GROUP_VARIABLE"] = "@@SYS_GROUP_TO_BE_ASSIGNED";
}
} else {
$arrayProperty["TAS_GROUP_VARIABLE"] = "";
@@ -252,197 +252,248 @@ class Task
*
* @param string $taskUid
* @param string $processUid
* @param bool $keyCaseToLower
* @param int $start
* @param int $limit
*
* return array
*
* @access public
*/
public function getStepsList($taskUid, $processUid, $keyCaseToLower = false, $start = 0, $limit = 25)
public function getAvailableSteps($taskUid, $processUid)
{
try {
//G::LoadClass("BasePeer");
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.BasePeer.php");
$arrayAvailableStep = array();
$arrayData = array();
$keyCase = ($keyCaseToLower)? CASE_LOWER : CASE_UPPER;
//Get Uids
$arrayUid = array();
//Criteria
$processMap = new \ProcessMap();
$tasks = new \Tasks();
$arrayStep = $tasks->getStepsOfTask($taskUid);
$criteria = $processMap->getAvailableBBCriteria($processUid, $taskUid);
if ($criteria->getDbName() == "dbarray") {
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
} else {
$rsCriteria = \GulliverBasePeer::doSelectRS($criteria);
foreach ($arrayStep as $step) {
$arrayUid[] = $step["STEP_UID_OBJ"];
}
//Array DB
$arraydbStep = array();
$arraydbStep[] = array(
"obj_uid" => "char",
"obj_title" => "char",
"obj_description" => "char",
"obj_type" => "char"
);
$delimiter = \DBAdapter::getStringDelimiter();
//DynaForms
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\DynaformPeer::DYN_UID);
$criteria->addAsColumn("DYN_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("DYN_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", "CONTENT");
$criteria->addAlias("CD", "CONTENT");
$arrayCondition = array();
$arrayCondition[] = array(\DynaformPeer::DYN_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "DYN_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\DynaformPeer::DYN_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "DYN_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\DynaformPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\DynaformPeer::DYN_UID, $arrayUid, \Criteria::NOT_IN);
$criteria->add(\DynaformPeer::DYN_TYPE, "xmlform", \Criteria::EQUAL);
$rsCriteria = \DynaformPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayData[] = array_change_key_case($row, $keyCase);
}
return array_change_key_case(
array("NUM_RECORDS" => count($arrayData), "DATA" => array_slice($arrayData, $start, $limit)),
$keyCase
);
} catch (Exception $e) {
throw $e;
}
}
/**
* Get all steps of the Task
*
* @param string $taskUid
* @param bool $keyCaseToLower
*
* return array
*
* @access public
*/
public function getSteps($taskUid, $keyCaseToLower = false)
{
try {
//G::LoadClass("BasePeer");
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.BasePeer.php");
$arrayData = array();
$keyCase = ($keyCaseToLower)? CASE_LOWER : CASE_UPPER;
//Criteria
$processMap = new \ProcessMap();
$criteria = $processMap->getStepsCriteria($taskUid);
if ($criteria->getDbName() == "dbarray") {
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
} else {
$rsCriteria = \GulliverBasePeer::doSelectRS($criteria);
}
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayData[] = array_change_key_case($row, $keyCase);
}
return $arrayData;
} catch (Exception $e) {
throw $e;
}
}
/**
* Get all triggers of the Task
*
* @param string $taskUid
* @param bool $keyCaseToLower
*
* return array
*
* @access public
*/
public function getTriggers($taskUid, $keyCaseToLower = false)
{
try {
//G::LoadClass("BasePeer");
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.BasePeer.php");
$arrayData = array();
$keyCase = ($keyCaseToLower)? CASE_LOWER : CASE_UPPER;
$arrayTriggerType1 = array(
"BEFORE" => "BEFORE",
"AFTER" => "AFTER"
);
$arrayTriggerType2 = array(
"BEFORE_ASSIGNMENT" => "BEFORE",
"BEFORE_ROUTING" => "BEFORE",
"AFTER_ROUTING" => "AFTER"
);
$processMap = new \ProcessMap();
$stepTgr = new \StepTrigger();
$arraySteps = $this->getSteps($taskUid);
$n = count($arraySteps) + 1;
$arraySteps[] = array(
"STEP_UID" => "",
//"STEP_TITLE" => G::LoadTranslation("ID_ASSIGN_TASK"),
"STEP_TITLE" => "Assign Task",
"STEP_TYPE_OBJ" => "",
"STEP_MODE" => "",
"STEP_CONDITION" => "",
"STEP_POSITION" => $n
);
foreach ($arraySteps as $index1 => $value1) {
$step = $value1;
$stepUid = $step["STEP_UID"];
//Set data
$arrayDataAux1 = array();
$arrayDataAux1["STEP_UID"] = $stepUid;
$arrayTriggerType = ($stepUid != "")? $arrayTriggerType1 : $arrayTriggerType2;
foreach ($arrayTriggerType as $index2 => $value2) {
$triggerType = $index2;
$type = $value2;
switch ($triggerType) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
break;
}
$stepTgr->orderPosition($stepUid, $taskUid, $type);
$arrayDataAux2 = array();
//Criteria
$criteria = $processMap->getStepTriggersCriteria($stepUid, $taskUid, $type);
if ($criteria->getDbName() == "dbarray") {
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
} else {
$rsCriteria = \GulliverBasePeer::doSelectRS($criteria);
}
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayDataAux2[] = array_change_key_case($row, $keyCase);
}
$arrayDataAux1[$triggerType] = $arrayDataAux2;
if ($row["DYN_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["DYN_TITLE"] = \Content::Load("DYN_TITLE", "", $row["DYN_UID"], SYS_LANG);
}
$arrayData[] = array_change_key_case($arrayDataAux1, $keyCase);
$arraydbStep[] = array(
"obj_uid" => $row["DYN_UID"],
"obj_title" => $row["DYN_TITLE"],
"obj_description" => $row["DYN_DESCRIPTION"],
"obj_type" => "DYNAFORM"
);
}
return $arrayData;
} catch (Exception $e) {
//InputDocuments
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_UID);
$criteria->addAsColumn("INP_DOC_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("INP_DOC_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", "CONTENT");
$criteria->addAlias("CD", "CONTENT");
$arrayCondition = array();
$arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "INP_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "INP_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\InputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\InputDocumentPeer::INP_DOC_UID, $arrayUid, \Criteria::NOT_IN);
$rsCriteria = \InputDocumentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($row["INP_DOC_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["INP_DOC_TITLE"] = \Content::Load("INP_DOC_TITLE", "", $row["INP_DOC_UID"], SYS_LANG);
}
$arraydbStep[] = array(
"obj_uid" => $row["INP_DOC_UID"],
"obj_title" => $row["INP_DOC_TITLE"],
"obj_description" => $row["INP_DOC_DESCRIPTION"],
"obj_type" => "INPUT_DOCUMENT"
);
}
//OutputDocuments
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\OutputDocumentPeer::OUT_DOC_UID);
$criteria->addAsColumn("OUT_DOC_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("OUT_DOC_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", "CONTENT");
$criteria->addAlias("CD", "CONTENT");
$arrayCondition = array();
$arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "OUT_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "OUT_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\OutputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\OutputDocumentPeer::OUT_DOC_UID, $arrayUid, \Criteria::NOT_IN);
$rsCriteria = \OutputDocumentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($row["OUT_DOC_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["OUT_DOC_TITLE"] = \Content::Load("OUT_DOC_TITLE", "", $row["OUT_DOC_UID"], SYS_LANG);
}
$arraydbStep[] = array(
"obj_uid" => $row["OUT_DOC_UID"],
"obj_title" => $row["OUT_DOC_TITLE"],
"obj_description" => $row["OUT_DOC_DESCRIPTION"],
"obj_type" => "OUTPUT_DOCUMENT"
);
}
//Call plugin
$pluginRegistry = &\PMPluginRegistry::getSingleton();
$externalSteps = $pluginRegistry->getSteps();
if (is_array($externalSteps) && count($externalSteps) > 0) {
foreach ($externalSteps as $key => $value) {
$arraydbStep[] = array(
"obj_uid" => $value->sStepId,
"obj_title" => $value->sStepTitle,
"obj_description" => "",
"obj_type" => "EXTERNAL"
);
}
}
\G::LoadClass("ArrayPeer");
global $_DBArray;
$_DBArray = (isset($_SESSION["_DBArray"]))? $_SESSION["_DBArray"] : "";
$_DBArray["STEP"] = $arraydbStep;
$_SESSION["_DBArray"] = $_DBArray;
$criteria = new \Criteria("dbarray");
$criteria->setDBArrayTable("STEP");
$criteria->addAscendingOrderByColumn("obj_type");
$criteria->addAscendingOrderByColumn("obj_title");
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayAvailableStep[] = $row;
}
return $arrayAvailableStep;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get all steps of an Task
*
* @param string $taskUid Unique id of the Task
*
* return array
*/
public function getSteps($taskUid)
{
try {
$arrayStep = array();
$step = new \BusinessModel\Step();
$criteria = new \Criteria("workflow");
$criteria->add(\StepPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
$criteria->addAscendingOrderByColumn(\StepPeer::STEP_POSITION);
$rsCriteria = \StepPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayData = $step->getStep($row["STEP_UID"]);
if (count($arrayData) > 0) {
$arrayStep[] = $arrayData;
}
}
return $arrayStep;
} catch (\Exception $e) {
throw $e;
}
}

View File

@@ -11,7 +11,7 @@ use \Luracast\Restler\RestException;
*/
class Activity extends Api
{
/**
/**
* @url GET /:projectUid/activity/:activityUid
*/
public function doGetProjectActivity($projectUid, $activityUid, $filter = '')
@@ -54,7 +54,7 @@ class Activity extends Api
/**
/**
* @url PUT /:projectUid/activity/:activityUid
*/
public function doPutProjectActivity($projectUid, $activityUid, $request_data = array())
@@ -69,7 +69,7 @@ class Activity extends Api
/**
/**
* @url DELETE /:projectUid/activity/:activityUid
*/
public function doDeleteProjectActivity($projectUid, $activityUid)
@@ -81,5 +81,37 @@ class Activity extends Api
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* @url GET /:projectUid/activity/:activityUid/steps
*/
public function doGetActivitySteps($activityUid, $projectUid)
{
try {
$task = new \BusinessModel\Task();
$response = $task->getSteps($activityUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/activity/:activityUid/available-steps
*/
public function doGetActivityAvailableSteps($activityUid, $projectUid)
{
try {
$task = new \BusinessModel\Task();
$response = $task->getAvailableSteps($activityUid, $projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace Services\Api\ProcessMaker\Project\Activity;
use \ProcessMaker\Api;
use \Luracast\Restler\RestException;
/**
* Project\Activity\Step Api Controller
*
* @protected
*/
class Step extends Api
{
/**
* @url GET /:projectUid/activity/:activityUid/step/:stepUid
*/
public function doGetActivityStep($stepUid, $activityUid, $projectUid)
{
try {
$step = new \BusinessModel\Step();
$response = $step->getStep($stepUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url POST /:projectUid/activity/:activityUid/step
*/
public function doPostActivityStep($activityUid, $projectUid, $request_data = array())
{
try {
$step = new \BusinessModel\Step();
$stepUid = $step->create($activityUid, $projectUid, $request_data);
$response = array("old_uid" => $request_data["step_uid"], "new_uid" => $stepUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/activity/:activityUid/step/:stepUid
*/
public function doPutActivityStep($stepUid, $activityUid, $projectUid, $request_data = array())
{
try {
$step = new \BusinessModel\Step();
$step->update($stepUid, $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url DELETE /:projectUid/activity/:activityUid/step/:stepUid
*/
public function doDeleteActivityStep($stepUid, $activityUid, $projectUid)
{
try {
$step = new \BusinessModel\Step();
$step->delete($stepUid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}