adding 'GET /projects' endpoint
This commit is contained in:
@@ -45,7 +45,6 @@ class Model
|
||||
|
||||
unset($data['PRJ_UID']);
|
||||
|
||||
|
||||
/*
|
||||
* 1. Create a project record
|
||||
* 2. Create a default diagram record
|
||||
@@ -61,7 +60,7 @@ class Model
|
||||
$prjName = $project->getPrjName();
|
||||
$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];
|
||||
$oldDiaUid = $diagramData['dia_uid'];
|
||||
|
||||
@@ -73,7 +72,6 @@ class Model
|
||||
$diaUid = $diagram->getDiaUid();
|
||||
$uids[] = array('old_uid' => $oldDiaUid, 'new_uid' => $diaUid, 'object' => 'diagram');
|
||||
|
||||
|
||||
$process = new Process();
|
||||
$process->setProUid(Hash::generateUID());
|
||||
$process->setPrjUid($prjUid);
|
||||
@@ -92,8 +90,8 @@ class Model
|
||||
$uids = array();
|
||||
|
||||
/*
|
||||
* 1. ensure that all related object data is defined, if not define it as empty
|
||||
* 2. create all related object
|
||||
* 1. ensure that all related data of objects are defined, if not we define them as empty
|
||||
* 2. create all related objects
|
||||
*/
|
||||
|
||||
$lanesets = array_key_exists('laneset', $diagramData) ? $diagramData['laneset'] : array();
|
||||
@@ -104,7 +102,6 @@ class Model
|
||||
$flows = array_key_exists('flows', $diagramData) ? $diagramData['flows'] : array();
|
||||
$artifacts = array_key_exists('artifacts', $diagramData) ? $diagramData['artifacts'] : array();
|
||||
|
||||
|
||||
foreach($lanesets as $lanesetData) {
|
||||
$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');
|
||||
}
|
||||
|
||||
/*
|
||||
* 1. crate project related object
|
||||
* 2. crate bound record for each object created previously
|
||||
*/
|
||||
|
||||
foreach($activities as $activityData) {
|
||||
$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->fromArray($activityData, BasePeer::TYPE_FIELDNAME);
|
||||
$activity->setActUid(Hash::generateUID());
|
||||
@@ -168,12 +167,7 @@ class Model
|
||||
foreach($events as $eventData) {
|
||||
$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->fromArray($eventData, BasePeer::TYPE_FIELDNAME);
|
||||
$event->setEvnUid(Hash::generateUID());
|
||||
$event->setPrjUid($prjUid);
|
||||
@@ -199,10 +193,6 @@ class Model
|
||||
foreach($gateways as $gatewayData) {
|
||||
$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->fromArray($gatewayData, BasePeer::TYPE_FIELDNAME);
|
||||
$gateway->setGatUid(Hash::generateUID());
|
||||
@@ -303,6 +293,39 @@ class Model
|
||||
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)
|
||||
{
|
||||
$data = array();
|
||||
|
||||
@@ -15,6 +15,16 @@ use ProcessMaker\Adapter\Bpmn\Model as BpmnModel;
|
||||
*/
|
||||
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)
|
||||
{
|
||||
@@ -37,4 +47,4 @@ class Project extends Api
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user