adding 'GET /projects' endpoint
This commit is contained in:
@@ -45,7 +45,6 @@ class Model
|
|||||||
|
|
||||||
unset($data['PRJ_UID']);
|
unset($data['PRJ_UID']);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1. Create a project record
|
* 1. Create a project record
|
||||||
* 2. Create a default diagram record
|
* 2. Create a default diagram record
|
||||||
@@ -61,7 +60,7 @@ class Model
|
|||||||
$prjName = $project->getPrjName();
|
$prjName = $project->getPrjName();
|
||||||
$uids[] = array('old_uid' => $oldPrjUid, 'new_uid' => $prjUid, 'object' => 'project');
|
$uids[] = array('old_uid' => $oldPrjUid, 'new_uid' => $prjUid, 'object' => 'project');
|
||||||
|
|
||||||
// By now, is thought create a only one diagram for a project/process (1:1)
|
// By now, is thought create only one diagram for each project (1:1)
|
||||||
$diagramData = (array) $diagrams[0];
|
$diagramData = (array) $diagrams[0];
|
||||||
$oldDiaUid = $diagramData['dia_uid'];
|
$oldDiaUid = $diagramData['dia_uid'];
|
||||||
|
|
||||||
@@ -73,7 +72,6 @@ class Model
|
|||||||
$diaUid = $diagram->getDiaUid();
|
$diaUid = $diagram->getDiaUid();
|
||||||
$uids[] = array('old_uid' => $oldDiaUid, 'new_uid' => $diaUid, 'object' => 'diagram');
|
$uids[] = array('old_uid' => $oldDiaUid, 'new_uid' => $diaUid, 'object' => 'diagram');
|
||||||
|
|
||||||
|
|
||||||
$process = new Process();
|
$process = new Process();
|
||||||
$process->setProUid(Hash::generateUID());
|
$process->setProUid(Hash::generateUID());
|
||||||
$process->setPrjUid($prjUid);
|
$process->setPrjUid($prjUid);
|
||||||
@@ -92,8 +90,8 @@ class Model
|
|||||||
$uids = array();
|
$uids = array();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1. ensure that all related object data is defined, if not define it as empty
|
* 1. ensure that all related data of objects are defined, if not we define them as empty
|
||||||
* 2. create all related object
|
* 2. create all related objects
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$lanesets = array_key_exists('laneset', $diagramData) ? $diagramData['laneset'] : array();
|
$lanesets = array_key_exists('laneset', $diagramData) ? $diagramData['laneset'] : array();
|
||||||
@@ -104,7 +102,6 @@ class Model
|
|||||||
$flows = array_key_exists('flows', $diagramData) ? $diagramData['flows'] : array();
|
$flows = array_key_exists('flows', $diagramData) ? $diagramData['flows'] : array();
|
||||||
$artifacts = array_key_exists('artifacts', $diagramData) ? $diagramData['artifacts'] : array();
|
$artifacts = array_key_exists('artifacts', $diagramData) ? $diagramData['artifacts'] : array();
|
||||||
|
|
||||||
|
|
||||||
foreach($lanesets as $lanesetData) {
|
foreach($lanesets as $lanesetData) {
|
||||||
$lanesetData = array_change_key_case((array) $lanesetData, CASE_UPPER);
|
$lanesetData = array_change_key_case((array) $lanesetData, CASE_UPPER);
|
||||||
|
|
||||||
@@ -134,13 +131,15 @@ class Model
|
|||||||
$uids[] = array('old_uid' => $oldLanUid, 'new_uid' => $lanUid, 'object' => 'lane');
|
$uids[] = array('old_uid' => $oldLanUid, 'new_uid' => $lanUid, 'object' => 'lane');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 1. crate project related object
|
||||||
|
* 2. crate bound record for each object created previously
|
||||||
|
*/
|
||||||
|
|
||||||
foreach($activities as $activityData) {
|
foreach($activities as $activityData) {
|
||||||
$activityData = array_change_key_case((array) $activityData, CASE_UPPER);
|
$activityData = array_change_key_case((array) $activityData, CASE_UPPER);
|
||||||
|
|
||||||
/*
|
|
||||||
* 1. crate activity record
|
|
||||||
* 2. crate bound record for activity created in previous step
|
|
||||||
*/
|
|
||||||
$activity = new Activity();
|
$activity = new Activity();
|
||||||
$activity->fromArray($activityData, BasePeer::TYPE_FIELDNAME);
|
$activity->fromArray($activityData, BasePeer::TYPE_FIELDNAME);
|
||||||
$activity->setActUid(Hash::generateUID());
|
$activity->setActUid(Hash::generateUID());
|
||||||
@@ -168,12 +167,7 @@ class Model
|
|||||||
foreach($events as $eventData) {
|
foreach($events as $eventData) {
|
||||||
$eventData = array_change_key_case((array) $eventData, CASE_UPPER);
|
$eventData = array_change_key_case((array) $eventData, CASE_UPPER);
|
||||||
|
|
||||||
/*
|
|
||||||
* 1. crate activity record
|
|
||||||
* 2. crate bound record for activity created in previous step
|
|
||||||
*/
|
|
||||||
$event = new Event();
|
$event = new Event();
|
||||||
|
|
||||||
$event->fromArray($eventData, BasePeer::TYPE_FIELDNAME);
|
$event->fromArray($eventData, BasePeer::TYPE_FIELDNAME);
|
||||||
$event->setEvnUid(Hash::generateUID());
|
$event->setEvnUid(Hash::generateUID());
|
||||||
$event->setPrjUid($prjUid);
|
$event->setPrjUid($prjUid);
|
||||||
@@ -199,10 +193,6 @@ class Model
|
|||||||
foreach($gateways as $gatewayData) {
|
foreach($gateways as $gatewayData) {
|
||||||
$gatewayData = array_change_key_case((array) $gatewayData, CASE_UPPER);
|
$gatewayData = array_change_key_case((array) $gatewayData, CASE_UPPER);
|
||||||
|
|
||||||
/*
|
|
||||||
* 1. crate activity record
|
|
||||||
* 2. crate bound record for activity created in previous step
|
|
||||||
*/
|
|
||||||
$gateway = new Gateway();
|
$gateway = new Gateway();
|
||||||
$gateway->fromArray($gatewayData, BasePeer::TYPE_FIELDNAME);
|
$gateway->fromArray($gatewayData, BasePeer::TYPE_FIELDNAME);
|
||||||
$gateway->setGatUid(Hash::generateUID());
|
$gateway->setGatUid(Hash::generateUID());
|
||||||
@@ -303,6 +293,39 @@ class Model
|
|||||||
return $project;
|
return $project;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function loadProjects()
|
||||||
|
{
|
||||||
|
$projectsList = self::getAllBpmnCollectionFrom('Project', true);
|
||||||
|
$projects = array();
|
||||||
|
|
||||||
|
foreach ($projectsList as $project) {
|
||||||
|
$projects[] = self::loadProject($project['prj_uid']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $projects;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Private Functions ***/
|
||||||
|
|
||||||
|
private static function getAllBpmnCollectionFrom($class, $changeCase = false)
|
||||||
|
{
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
$c = new \Criteria('workflow');
|
||||||
|
//$c->add($field, $value);
|
||||||
|
|
||||||
|
$classPeer = 'Bpmn' . $class . 'Peer';
|
||||||
|
$rs = $classPeer::doSelectRS($c);
|
||||||
|
|
||||||
|
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||||
|
|
||||||
|
while ($rs->next()) {
|
||||||
|
$data[] = $changeCase ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
private static function getBpmnCollectionBy($class, $field, $value, $changeCase = false)
|
private static function getBpmnCollectionBy($class, $field, $value, $changeCase = false)
|
||||||
{
|
{
|
||||||
$data = array();
|
$data = array();
|
||||||
|
|||||||
@@ -15,6 +15,16 @@ use ProcessMaker\Adapter\Bpmn\Model as BpmnModel;
|
|||||||
*/
|
*/
|
||||||
class Project extends Api
|
class Project extends Api
|
||||||
{
|
{
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$projects = BpmnModel::loadProjects();
|
||||||
|
|
||||||
|
return $projects;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function post($request_data)
|
function post($request_data)
|
||||||
{
|
{
|
||||||
@@ -37,4 +47,4 @@ class Project extends Api
|
|||||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user