Entpoint /project: enabling new/update/delete diagram's activities for PUT method
This commit is contained in:
@@ -210,14 +210,23 @@ class Bpmn extends Handler
|
||||
throw new \Exception(sprintf("Error: There is not an initialized diagram for Project with prj_uid: %s.", $this->getUid()));
|
||||
}
|
||||
|
||||
// setting defaults
|
||||
$data['ACT_UID'] = array_key_exists('ACT_UID', $data) ? $data['ACT_UID'] : Hash::generateUID();;
|
||||
try {
|
||||
self::log("Add Activity with data: ", $data);
|
||||
|
||||
$activity = new Activity();
|
||||
$activity->fromArray($data);
|
||||
$activity->setPrjUid($this->getUid());
|
||||
$activity->setProUid($process->getProUid());
|
||||
$activity->save();
|
||||
// setting defaults
|
||||
$data['ACT_UID'] = array_key_exists('ACT_UID', $data) ? $data['ACT_UID'] : Hash::generateUID();;
|
||||
|
||||
$activity = new Activity();
|
||||
$activity->fromArray($data);
|
||||
$activity->setPrjUid($this->getUid());
|
||||
$activity->setProUid($process->getProUid());
|
||||
$activity->save();
|
||||
|
||||
self::log("Add Activity Success!");
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
throw $e;
|
||||
}
|
||||
|
||||
return $activity->getActUid();
|
||||
}
|
||||
@@ -244,20 +253,38 @@ class Bpmn extends Handler
|
||||
|
||||
public function updateActivity($actUid, $data)
|
||||
{
|
||||
$activity = ActivityPeer::retrieveByPk($actUid);
|
||||
try {
|
||||
self::log("Update Activity: $actUid", "With data: ", $data);
|
||||
|
||||
// fixing data
|
||||
//$data['ELEMENT_UID'] = $data['BOU_ELEMENT_UID'];
|
||||
//unset($data['BOU_ELEMENT_UID']);
|
||||
$activity = ActivityPeer::retrieveByPk($actUid);
|
||||
|
||||
$activity->fromArray($data);
|
||||
$activity->save();
|
||||
// fixing data
|
||||
//$data['ELEMENT_UID'] = $data['BOU_ELEMENT_UID'];
|
||||
//unset($data['BOU_ELEMENT_UID']);
|
||||
|
||||
$activity->fromArray($data);
|
||||
$activity->save();
|
||||
|
||||
self::log("Update Activity Success!");
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function removeActivity($actUid)
|
||||
{
|
||||
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||
$activity->delete();
|
||||
try {
|
||||
self::log("Remove Activity: $actUid");
|
||||
|
||||
$activity = ActivityPeer::retrieveByPK($actUid);
|
||||
$activity->delete();
|
||||
|
||||
self::log("Remove Activity Success!");
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function addEvent($data)
|
||||
|
||||
@@ -48,7 +48,7 @@ abstract class Handler
|
||||
*/
|
||||
public static function log()
|
||||
{
|
||||
if (System::isDebugMode()) {
|
||||
if (\System::isDebugMode()) {
|
||||
|
||||
$me = Logger::getInstance();
|
||||
$args = func_get_args();
|
||||
|
||||
@@ -105,6 +105,16 @@ class Project extends Api
|
||||
|
||||
$result = array();
|
||||
|
||||
$diagramElements = array(
|
||||
'activities' => 'act_uid',
|
||||
'events' => 'evn_uid',
|
||||
'flows' => 'flo_uid',
|
||||
'artifacts' => 'art_uid',
|
||||
'laneset' => 'lns_uid',
|
||||
'lanes' => 'lan_uid'
|
||||
);
|
||||
|
||||
$whiteList = array();
|
||||
foreach ($diagram["activities"] as $activityData) {
|
||||
$activityData = array_change_key_case($activityData, CASE_UPPER);
|
||||
|
||||
@@ -112,6 +122,8 @@ class Project extends Api
|
||||
if ($activity = $bwp->getActivity($activityData["ACT_UID"])) {
|
||||
// then update activity
|
||||
$bwp->updateActivity($activityData["ACT_UID"], $activityData);
|
||||
|
||||
$whiteList[] = $activityData["ACT_UID"];
|
||||
} else {
|
||||
// if not exists then create it
|
||||
$oldActUid = $activityData["ACT_UID"];
|
||||
@@ -120,11 +132,19 @@ class Project extends Api
|
||||
$bwp->addActivity($activityData);
|
||||
|
||||
$result[] = array("object" => "activity", "new_uid" => $actUid, "old_uid" => $oldActUid);
|
||||
$whiteList[] = $actUid;
|
||||
}
|
||||
}
|
||||
|
||||
//$result = BpmnModel::updateProject($prjUid, $request_data);
|
||||
$activities = $bwp->getActivities();
|
||||
|
||||
// looking for removed elements
|
||||
foreach ($activities as $activityData) {
|
||||
if (! in_array($activityData["ACT_UID"], $whiteList)) {
|
||||
// If it is not in the white list so, then remove them
|
||||
$bwp->removeActivity($activityData["ACT_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
Reference in New Issue
Block a user