Merged in victorsl/processmaker (pull request #65)

ProcessMaker-MA "Project Properties - Step Resources (behat)"
This commit is contained in:
erik ao
2014-01-09 15:34:05 -04:00
5 changed files with 377 additions and 75 deletions

View File

@@ -465,9 +465,11 @@ class Step
public function getTriggers($stepUid)
{
try {
//Get data
$arrayTrigger = array();
$trigger = new \BusinessModel\Trigger();
$bmTrigger = new \BusinessModel\Trigger();
$bmStepTrigger = new \BusinessModel\Step\Trigger();
$arrayDataUid = $this->getDataUids($stepUid);
@@ -508,8 +510,9 @@ class Step
$stepTrigger->orderPosition($stepUid, $taskUid, $type);
//Criteria
$criteria = $trigger->getTriggerCriteria();
$criteria = $bmTrigger->getTriggerCriteria();
$criteria->addSelectColumn(\StepTriggerPeer::ST_TYPE);
$criteria->addSelectColumn(\StepTriggerPeer::ST_CONDITION);
$criteria->addSelectColumn(\StepTriggerPeer::ST_POSITION);
$criteria->addJoin(\StepTriggerPeer::TRI_UID, \TriggersPeer::TRI_UID, \Criteria::LEFT_JOIN);
@@ -524,14 +527,7 @@ class Step
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayTrigger[] = array(
"tri_uid" => $row["TRI_UID"],
"tri_title" => $row["TRI_TITLE"],
"tri_description" => $row["TRI_DESCRIPTION"],
"st_type" => $triggerType,
"st_condition" => $row["ST_CONDITION"],
"st_position" => (int)($row["ST_POSITION"])
);
$arrayTrigger[] = $bmStepTrigger->getTriggerDataFromRecord($row);
}
}

View File

@@ -206,5 +206,78 @@ class Trigger
throw $e;
}
}
/**
* Get data of a Trigger from a record
*
* @param array $record Record
*
* return array Return an array with data of a Trigger
*/
public function getTriggerDataFromRecord($record)
{
try {
return array(
"tri_uid" => $record["TRI_UID"],
"tri_title" => $record["TRI_TITLE"],
"tri_description" => $record["TRI_DESCRIPTION"],
"st_type" => $record["ST_TYPE"],
"st_condition" => $record["ST_CONDITION"],
"st_position" => (int)($record["ST_POSITION"])
);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get data of a Trigger
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $triggerUid Unique id of Trigger
*
* return array Return an array with data of a Trigger
*/
public function getTrigger($stepUid, $type, $triggerUid)
{
try {
$step = new \BusinessModel\Step();
$arrayDataUid = $step->getDataUids($stepUid);
$taskUid = $arrayDataUid["TAS_UID"];
//Verify data
if (!$this->existsRecord($stepUid, $type, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
}
//Get data
$trigger = new \BusinessModel\Trigger();
$criteria = $trigger->getTriggerCriteria();
$criteria->addSelectColumn(\StepTriggerPeer::ST_TYPE);
$criteria->addSelectColumn(\StepTriggerPeer::ST_CONDITION);
$criteria->addSelectColumn(\StepTriggerPeer::ST_POSITION);
$criteria->addJoin(\StepTriggerPeer::TRI_UID, \TriggersPeer::TRI_UID, \Criteria::LEFT_JOIN);
$criteria->add(\TriggersPeer::TRI_UID, $triggerUid, \Criteria::EQUAL);
$criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
$criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
$criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL);
$rsCriteria = \StepTriggerPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
return $this->getTriggerDataFromRecord($row);
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -43,43 +43,6 @@ class Trigger
}
}
/**
* Get data of a Trigger
*
* @param string $triggerUid Unique id of Trigger
*
* return array
*/
public function getTrigger($triggerUid)
{
try {
//Criteria
$criteria = $this->getTriggerCriteria();
$criteria->add(\TriggersPeer::TRI_UID, $triggerUid, \Criteria::EQUAL);
$rsCriteria = \TriggersPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$arrayTrigger = array(
"tri_uid" => $row["TRI_UID"],
"tri_title" => $row["TRI_TITLE"],
"tri_description" => $row["TRI_DESCRIPTION"],
"tri_type" => $row["TRI_TYPE"],
"tri_webbot" => $row["TRI_WEBBOT"],
"tri_param" => $row["TRI_PARAM"]
);
return $arrayTrigger;
} catch (\Exception $e) {
throw $e;
}
}
/**
* List of Triggers in process
* @var string $sProcessUID. Uid for Process

View File

@@ -12,14 +12,20 @@ use \Luracast\Restler\RestException;
class Trigger extends Api
{
/**
* @url GET /:projectUid/activity/:activityUid/step/:stepUid/trigger/:triggerUid
* @url GET /:projectUid/activity/:activityUid/step/:stepUid/trigger/:triggerUid/:type
*
* @param string $triggerUid
* @param string $stepUid
* @param string $activityUid
* @param string $projectUid
* @param string $type {@from body}{@choice before,after}
*/
public function doGetActivityStepTrigger($triggerUid, $stepUid, $activityUid, $projectUid)
public function doGetActivityStepTrigger($triggerUid, $stepUid, $activityUid, $projectUid, $type)
{
try {
$trigger = new \BusinessModel\Trigger();
$stepTrigger = new \BusinessModel\Step\Trigger();
$response = $trigger->getTrigger($triggerUid);
$response = $stepTrigger->getTrigger($stepUid, strtoupper($type), $triggerUid);
return $response;
} catch (\Exception $e) {