Refactoring Bpmn/Workflow handling layer (1st commit)
This commit is contained in:
@@ -499,17 +499,21 @@ class Model
|
||||
|
||||
$result = self::updateDiagram($prjUid, $process->getProUid(), $diff);
|
||||
|
||||
self::log("Method: ".__METHOD__, 'Returns: ', $result);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function updateDiagram($prjUid, $proUid, $diff)
|
||||
{
|
||||
self::log('executing: updateDiagram() with params -> ', $prjUid, $proUid, $diff);
|
||||
self::log("Method: ".__METHOD__, 'Params: ', "\$prjUid: $prjUid", "\$proUid: $proUid", "\$diff:", $diff);
|
||||
|
||||
//return false;
|
||||
$uids = array();
|
||||
|
||||
// Updating objects
|
||||
/*
|
||||
* Updating Records
|
||||
*/
|
||||
foreach ($diff['updated'] as $element => $items) {
|
||||
foreach ($items as $data) {
|
||||
$data = array_change_key_case((array) $data, CASE_UPPER);
|
||||
@@ -550,7 +554,37 @@ class Model
|
||||
}
|
||||
}
|
||||
|
||||
// Creating new records
|
||||
/*
|
||||
* Deleting Records
|
||||
*/
|
||||
foreach ($diff['deleted'] as $element => $items) {
|
||||
foreach ($items as $uid) {
|
||||
$data = array_change_key_case((array) $data, CASE_UPPER);
|
||||
|
||||
switch ($element) {
|
||||
case 'laneset':
|
||||
break;
|
||||
case 'lanes':
|
||||
break;
|
||||
case 'activities':
|
||||
$activity = ActivityPeer::retrieveByPK($uid);
|
||||
$activity->delete();
|
||||
break;
|
||||
case 'events':
|
||||
break;
|
||||
case 'gateways':
|
||||
break;
|
||||
case 'flows':
|
||||
break;
|
||||
case 'artifacts':
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Creating new records
|
||||
*/
|
||||
foreach ($diff['new'] as $element => $items) {
|
||||
foreach ($items as $data) {
|
||||
$data = array_change_key_case((array) $data, CASE_UPPER);
|
||||
@@ -586,35 +620,6 @@ class Model
|
||||
}
|
||||
}
|
||||
|
||||
// Creating new records
|
||||
foreach ($diff['deleted'] as $element => $items) {
|
||||
foreach ($items as $uid) {
|
||||
$data = array_change_key_case((array) $data, CASE_UPPER);
|
||||
|
||||
switch ($element) {
|
||||
case 'laneset':
|
||||
break;
|
||||
case 'lanes':
|
||||
break;
|
||||
case 'activities':
|
||||
$activity = ActivityPeer::retrieveByPK($uid);
|
||||
$activity->delete();
|
||||
|
||||
$uidData['new_uid'] = $activity->getActUid();
|
||||
$uids[] = $uidData;
|
||||
break;
|
||||
case 'events':
|
||||
break;
|
||||
case 'gateways':
|
||||
break;
|
||||
case 'flows':
|
||||
break;
|
||||
case 'artifacts':
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $uids;
|
||||
}
|
||||
|
||||
@@ -914,7 +919,7 @@ class Model
|
||||
|
||||
$me = Logger::getInstance();
|
||||
$args = func_get_args();
|
||||
array_unshift($args, 'Class '.__CLASS__.': ');
|
||||
//array_unshift($args, 'Class '.__CLASS__.' ');
|
||||
|
||||
call_user_func_array(array($me, 'setLog'), $args);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Project\Adapter;
|
||||
|
||||
use ProcessMaker\Project\ProjectHandler;
|
||||
|
||||
class BpmnProject extends ProjectHandler
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Project\Adapter;
|
||||
|
||||
use ProcessMaker\Project\Adapter\BpmnHandler;
|
||||
|
||||
class WorkflowBpmnProject extends BpmnHandler
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Project\Adapter;
|
||||
|
||||
use \Process;
|
||||
use \Task;
|
||||
|
||||
use ProcessMaker\Project\ProjectHandler;
|
||||
|
||||
class WorkflowProject extends ProjectHandler
|
||||
{
|
||||
public function create($data)
|
||||
{
|
||||
try {
|
||||
// setting defaults
|
||||
$data['TASKS'] = array_key_exists('TASKS', $data) ? $data['TASKS'] : array();
|
||||
$data['ROUTES'] = array_key_exists('ROUTES', $data) ? $data['ROUTES'] : array();
|
||||
|
||||
// Create project
|
||||
$process = new Process();
|
||||
$proUid = $process->create($data, false);
|
||||
|
||||
// Create project's tasks
|
||||
foreach ($data['TASKS'] as $taskData) {
|
||||
$taskData['PRO_UID'] = $proUid;
|
||||
$task = new Task();
|
||||
$task->create($taskData, false);
|
||||
}
|
||||
|
||||
// Create project's routes
|
||||
foreach ($data['ROUTES'] as $route) {
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
//throw new \RuntimeException($e);
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
echo $e->getTraceAsString() . PHP_EOL;
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function update($prjUid, $data)
|
||||
{
|
||||
// TODO: Implement update() method.
|
||||
}
|
||||
|
||||
public function delete($prjUid)
|
||||
{
|
||||
// TODO: Implement delete() method.
|
||||
}
|
||||
|
||||
public function load($prjUid)
|
||||
{
|
||||
// TODO: Implement load() method.
|
||||
}
|
||||
}
|
||||
35
workflow/engine/src/ProcessMaker/Project/ProjectHandler.php
Normal file
35
workflow/engine/src/ProcessMaker/Project/ProjectHandler.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Project;
|
||||
|
||||
use ProcessMaker\Util\Logger;
|
||||
|
||||
abstract class ProjectHandler implements ProjectHandlerInterface
|
||||
{
|
||||
public abstract function create($data);
|
||||
public abstract function update($prjUid, $data);
|
||||
public abstract function delete($prjUid);
|
||||
public abstract function load($prjUid);
|
||||
|
||||
/**
|
||||
* Log in ProcessMaker Standard Output if debug mode is enabled.
|
||||
*
|
||||
* @author Erik Amaru Ortiz <aortiz.erik at icloud dot com>
|
||||
* @internal param $args this method receives N-Arguments dynamically with any type, string, array, object, etc
|
||||
* it means that you ca use it by example:
|
||||
*
|
||||
* self::log("Beginning transaction");
|
||||
* self::log("Method: ", __METHOD__, 'Returns: ', $result);
|
||||
*
|
||||
*/
|
||||
public static function log()
|
||||
{
|
||||
if (System::isDebugMode()) {
|
||||
|
||||
$me = Logger::getInstance();
|
||||
$args = func_get_args();
|
||||
//array_unshift($args, 'Class '.__CLASS__.' ');
|
||||
|
||||
call_user_func_array(array($me, 'setLog'), $args);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace ProcessMaker\Project;
|
||||
|
||||
interface ProjectHandlerInterface
|
||||
{
|
||||
public function create($data);
|
||||
public function update($prjUid, $data);
|
||||
public function delete($prjUid);
|
||||
public function load($prjUid);
|
||||
}
|
||||
@@ -38,8 +38,10 @@ class Logger
|
||||
$arg = print_r($arg, true);
|
||||
}
|
||||
|
||||
$stat = fwrite($this->fp, "- " . date('Y-m-d H:i:s') . " " . $arg . PHP_EOL);
|
||||
fwrite($this->fp, "- " . date('Y-m-d H:i:s') . " " . $arg . PHP_EOL);
|
||||
}
|
||||
if (count($args) > 1)
|
||||
fwrite($this->fp, PHP_EOL);
|
||||
}
|
||||
|
||||
public static function log()
|
||||
|
||||
Reference in New Issue
Block a user