Entpoint /project: enabling update/new activities for PUT method
This commit is contained in:
@@ -206,8 +206,8 @@ class Bpmn extends Handler
|
||||
|
||||
public function addActivity($data)
|
||||
{
|
||||
if (empty($this->diagram)) {
|
||||
throw new \Exception("Error: There is not an initialized diagram.");
|
||||
if (! ($process = $this->getProcess("object"))) {
|
||||
throw new \Exception(sprintf("Error: There is not an initialized diagram for Project with prj_uid: %s.", $this->getUid()));
|
||||
}
|
||||
|
||||
// setting defaults
|
||||
@@ -215,8 +215,8 @@ class Bpmn extends Handler
|
||||
|
||||
$activity = new Activity();
|
||||
$activity->fromArray($data);
|
||||
$activity->setPrjUid($this->project->getPrjUid());
|
||||
$activity->setProUid($this->getProcess("object")->getProUid());
|
||||
$activity->setPrjUid($this->getUid());
|
||||
$activity->setProUid($process->getProUid());
|
||||
$activity->save();
|
||||
|
||||
return $activity->getActUid();
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Services\Api\ProcessMaker;
|
||||
use Luracast\Restler\RestException;
|
||||
use ProcessMaker\Services\Api;
|
||||
use ProcessMaker\Adapter\Bpmn\Model as BpmnModel;
|
||||
use ProcessMaker\Util\Hash;
|
||||
|
||||
/**
|
||||
* Class Project
|
||||
@@ -96,6 +97,31 @@ class Project extends Api
|
||||
public function put($prjUid, $request_data)
|
||||
{
|
||||
try {
|
||||
$projectData = $request_data;
|
||||
$prjUid = $projectData["prj_uid"];
|
||||
$diagram = isset($request_data["diagrams"]) && isset($request_data["diagrams"][0]) ? $request_data["diagrams"][0] : array();
|
||||
|
||||
$bwp = \ProcessMaker\Project\Adapter\BpmnWorkflow::load($prjUid);
|
||||
|
||||
$result = array();
|
||||
|
||||
foreach ($diagram["activities"] as $activityData) {
|
||||
$activityData = array_change_key_case($activityData, CASE_UPPER);
|
||||
|
||||
// activity exists ?
|
||||
if ($activity = $bwp->getActivity($activityData["ACT_UID"])) {
|
||||
// then update activity
|
||||
$bwp->updateActivity($activityData["ACT_UID"], $activityData);
|
||||
} else {
|
||||
// if not exists then create it
|
||||
$oldActUid = $activityData["ACT_UID"];
|
||||
$actUid = Hash::generateUID();
|
||||
$activityData["ACT_UID"] = $actUid;
|
||||
$bwp->addActivity($activityData);
|
||||
|
||||
$result[] = array("object" => "activity", "new_uid" => $actUid, "old_uid" => $oldActUid);
|
||||
}
|
||||
}
|
||||
|
||||
//$result = BpmnModel::updateProject($prjUid, $request_data);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user