Entpoint /project: enabling new/update/delete diagram's activities for PUT method

This commit is contained in:
Erik Amaru Ortiz
2014-02-06 12:10:35 -04:00
parent 187ad19c84
commit e19d1b2033
3 changed files with 64 additions and 17 deletions

View File

@@ -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) {