Merge branch 'master' of bitbucket.org:colosa/processmaker

Conflicts:
	workflow/engine/src/Services/api.ini
This commit is contained in:
Victor Saisa Lopez
2013-12-16 10:07:02 -04:00
7 changed files with 764 additions and 51 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -861,23 +861,52 @@ class Task
{
try {
$iType = 1;
$oTaskUser = new \TaskUser();
if ($assType == "user") {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 1));
return array('aas_uid' => $sAssigneeUID,
'aas_type' => $assType);
} else {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 2));
return array('aas_uid' => $sAssigneeUID,
'aas_type' => $assType);
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn( \TaskUserPeer::TU_RELATION );
$oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID );
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID );
$oCriteria->add(\TaskUserPeer::TU_TYPE, $iType );
$oTaskUser = \TaskUserPeer::doSelectRS( $oCriteria );
$oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oTaskUser->next()) {
$aRow = $oTaskUser->getRow();
$iRelation = $aRow['TU_RELATION'];
}
} catch (Exception $e) {
$oTaskUser = \TaskUserPeer::retrieveByPK( $sTaskUID, $sAssigneeUID, $iType, $iRelation );
if (! is_null( $oTaskUser )) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' is already assigned to task: ' . $sTaskUID ));
} else {
$oTypeAssigneeG = \GroupwfPeer::retrieveByPK( $sAssigneeUID );
$oTypeAssigneeU = \UsersPeer::retrieveByPK( $sAssigneeUID );
if (is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
if (is_null( $oTypeAssigneeG ) && ! is_null( $oTypeAssigneeU) ) {
$type = "user";
if ( $type != $assType ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
}
if (! is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
$type = "group";
if ( $type != $assType ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
}
$oTaskUser = new \TaskUser();
if ( $assType == "user" ) {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 1));
} else {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 2));
}
}
} catch ( Exception $e ) {
throw $e;
}
}
@@ -1199,23 +1228,52 @@ class Task
{
try {
$iType = 2;
$oTaskUser = new \TaskUser();
if ($assType == "user") {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 1));
return array('aas_uid' => $sAssigneeUID,
'aas_type' => $assType);
} else {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 2));
return array('aas_uid' => $sAssigneeUID,
'aas_type' => $assType);
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn( \TaskUserPeer::TU_RELATION );
$oCriteria->add(\TaskUserPeer::USR_UID, $sAssigneeUID );
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID );
$oCriteria->add(\TaskUserPeer::TU_TYPE, $iType );
$oTaskUser = \TaskUserPeer::doSelectRS( $oCriteria );
$oTaskUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oTaskUser->next()) {
$aRow = $oTaskUser->getRow();
$iRelation = $aRow['TU_RELATION'];
}
} catch (Exception $e) {
$oTaskUser = \TaskUserPeer::retrieveByPK( $sTaskUID, $sAssigneeUID, $iType, $iRelation );
if (! is_null( $oTaskUser )) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' is already assigned to task: ' . $sTaskUID ));
} else {
$oTypeAssigneeG = \GroupwfPeer::retrieveByPK( $sAssigneeUID );
$oTypeAssigneeU = \UsersPeer::retrieveByPK( $sAssigneeUID );
if (is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
if (is_null( $oTypeAssigneeG ) && ! is_null( $oTypeAssigneeU) ) {
$type = "user";
if ( $type != $assType ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
}
if (! is_null( $oTypeAssigneeG ) && is_null( $oTypeAssigneeU ) ) {
$type = "group";
if ( $type != $assType ) {
throw (new \Exception( 'This id: '. $sAssigneeUID .' do not correspond to a registered ' .$assType ));
}
}
$oTaskUser = new \TaskUser();
if ( $assType == "user" ) {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 1));
} else {
$oTaskUser->create(array('TAS_UID' => $sTaskUID,
'USR_UID' => $sAssigneeUID,
'TU_TYPE' => $iType,
'TU_RELATION' => 2));
}
}
} catch ( Exception $e ) {
throw $e;
}
}
@@ -1230,7 +1288,7 @@ class Task
* @access public
*/
public function removeTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID)
{
{
try {
$iType = 2;
$oCriteria = new \Criteria('workflow');
@@ -1246,12 +1304,13 @@ class Task
}
$oTaskUser = \TaskUserPeer::retrieveByPK($sTaskUID, $sAssigneeUID, $iType, $iRelation);
if (! is_null( $oTaskUser )) {
\TaskUserPeer::doDelete($oCriteria);
OutputDocumentsTaskUserPeer::doDelete($oCriteria);
} else {
throw (new \Exception( 'This row does not exist!' ));
}
} catch (Exception $e) {
throw $e;
}
}
}
}
}

View File

@@ -82,10 +82,14 @@ class Trigger
/**
* List of Triggers in process
* @var string $sProcessUID. Uid for Process
*
* return array
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*/
public function getTriggersCriteria($sProcessUID = '')
public function getTriggers($sProcessUID = '')
{
$criteria = $this->getTriggerCriteria();
@@ -96,7 +100,7 @@ class Trigger
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$triggersArray = "";
$triggersArray = array();
//$triggersArray[] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char');
while ($aRow = $oDataset->getRow()) {
if (($aRow['TRI_TITLE'] == null) || ($aRow['TRI_TITLE'] == "")) {
@@ -114,8 +118,12 @@ class Trigger
/**
* Get data for TriggerUid
* @var string $sTriggerUID. Uid for Trigger
*
* return array
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*/
public function getDataTrigger($sTriggerUID = '')
{
@@ -131,7 +139,12 @@ class Trigger
/**
* Delete Trigger
* @var string $sTriggerUID. Uid for Trigger
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return void
*/
public function deleteTrigger($sTriggerUID = '')
{
@@ -145,7 +158,15 @@ class Trigger
/**
* Save Data for Trigger
* @var string $sProcessUID. Uid for Process
* @var string $dataTrigger. Data for Trigger
* @var string $create. Create o Update Trigger
* @var string $sTriggerUid. Uid for Trigger
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*/
public function saveTrigger($sProcessUID = '', $dataTrigger = array(), $create = false, $sTriggerUid = '')
{
@@ -185,12 +206,19 @@ class Trigger
}
return $dataResp;
}
return array();
}
/**
* Verify name for trigger in process
* @var string $sProcessUID. Uid for Process
* @var string $sTriggerName. Name for Trigger
* @var string $sTriggerUid. Uid for Trigger
*
* return boolean
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return boolean
*/
public function verifyNameTrigger($sProcessUID, $sTriggerName, $sTriggerUid = '')
{

View File

@@ -99,8 +99,6 @@ class Assignee extends Api
try {
$task = new \BusinessModel\Task();
$arrayData = $task->addTaskAssignee($prjUid, $actUid, $ass_uid, $ass_type);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//Response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
@@ -138,7 +136,7 @@ class Assignee extends Api
* @param int $limit
*
*/
public function doGetActivityAdhocAssignees($prjUid, $actUid, $filter = '', $start = '1', $limit = '50')
public function doGetActivityAdhocAssignees($prjUid, $actUid, $filter = '', $start = '0', $limit = '50')
{
$response = array();
try {
@@ -163,7 +161,7 @@ class Assignee extends Api
* @param int $limit
*
*/
public function doGetActivityAvailableAdhocAssignee($prjUid, $actUid, $filter = '', $start = '1', $limit = '50')
public function doGetActivityAvailableAdhocAssignee($prjUid, $actUid, $filter = '', $start = '0', $limit = '50')
{
$response = array();
try {
@@ -216,8 +214,6 @@ class Assignee extends Api
try {
$task = new \BusinessModel\Task();
$arrayData = $task->addTaskAdhocAssignee($prjUid, $actUid, $ass_uid, $ass_type);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
@@ -235,7 +231,6 @@ class Assignee extends Api
*/
public function doDeleteActivityAdhocAssignee($prjUid, $actUid, $assUid)
{
$response = array();
try {
$task = new \BusinessModel\Task();
$arrayData = $task->removeTaskAdhocAssignee($prjUid, $actUid, $assUid);

View File

@@ -0,0 +1,229 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\OutputDocuments Api Controller
*
* @protected
*/
class OutputDocuments extends Api
{
/**
* @param string $prjUid {@min 32} {@max 32}
*
* @url GET /:prjUid/output-documents
*/
public function doGetProjectOutputDocuments($prjUid)
{
try {
$outputDocument = new \BusinessModel\OutputDocument();
$arrayData = $outputDocument->getOutputDocuments($prjUid);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @param string $prjUid {@min 32} {@max 32}
* @param string $outputDocumentUid {@min 32} {@max 32}
*
* @url GET /:prjUid/output-document/:outputDocumentUid
*/
public function doGetProjectOutputDocument($prjUid, $outputDocumentUid)
{
try {
$outputDocument = new \BusinessModel\OutputDocument();
$arrayData = $outputDocument->getOutputDocument($prjUid, $outputDocumentUid);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @url POST /:prjUid/output-document
*
* @param string $prjUid {@min 32} {@max 32}
* @param OutputDocumentStructure $request_data
*
* @status 201
*/
public function doPostProjectOutputDocument($prjUid, OutputDocumentStructure $request_data = null)
{
try {
$request_data = (array)($request_data);
$outputDocument = new \BusinessModel\OutputDocument();
$arrayData = $outputDocument->addOutputDocument($prjUid, $request_data);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @url PUT /:prjUid/output-document/:outputDocumentUid
*
* @param string $prjUid {@min 32} {@max 32}
* @param string $outputDocumentUid {@min 32} {@max 32}
* @param OutputDocumentStructure $request_data
*
*/
public function doPutProjectOutputDocument($prjUid, $outputDocumentUid, OutputDocumentStructure $request_data)
{
try {
$request_data = (array)($request_data);
$outputDocument = new \BusinessModel\OutputDocument();
$arrayData = $outputDocument->updateOutputDocument($prjUid, $outputDocumentUid, $request_data);
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @url DELETE /:prjUid/output-document/:outputDocumentUid
* @param string $prjUid {@min 32} {@max 32}
* @param string $outputDocumentUid {@min 32} {@max 32}
*
*/
public function doDeleteProjectOutputDocument($prjUid, $outputDocumentUid)
{
try {
$outputDocument = new \BusinessModel\OutputDocument();
$arrayData = $outputDocument->deleteOutputDocument($prjUid, $outputDocumentUid);
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
}
class OutputDocumentStructure
{ /**
* @var string {@from body}
*/
public $out_doc_title;
/**
* @var string {@from body}
*/
public $out_doc_description;
/**
* @var string {@from body}
*/
public $out_doc_filename;
/**
* @var string {@from body}
*/
public $out_doc_template;
/**
* @var string {@from body} {@min 0} {@max 10}
*/
public $out_doc_report_generator;
/**
* @var int {@from body}
*/
public $out_doc_landscape;
/**
* @var string {@from body} {@min 0} {@max 10}
*/
public $out_doc_media;
/**
* @var int {@from body}
*/
public $out_doc_left_margin;
/**
* @var int {@from body}
*/
public $out_doc_right_margin;
/**
* @var int {@from body}
*/
public $out_doc_top_margin;
/**
* @var int {@from body}
*/
public $out_doc_bottom_margin;
/**
* @var string {@from body} {@min 0} {@max 10}
*/
public $out_doc_generate;
/**
* @var string {@from body} {@min 0} {@max 32}
*/
public $out_doc_type;
/**
* @var int {@from body}
*/
public $out_doc_current_revision;
/**
* @var string {@from body}
*/
public $out_doc_field_mapping;
/**
* @var int {@from body}
*/
public $out_doc_versioning;
/**
* @var string {@from body}
*/
public $out_doc_destination_path;
/**
* @var string {@from body}
*/
public $out_doc_tags;
/**
* @var int {@from body}
*/
public $out_doc_pdf_security_enabled;
/**
* @var string {@from body}
*/
public $out_doc_pdf_security_open_password;
/**
* @var string {@from body}
*/
public $out_doc_pdf_security_owner_password;
/**
* @var string {@from body}
*/
public $out_doc_pdf_security_permission;
}

View File

@@ -7,6 +7,9 @@ use \Luracast\Restler\RestException;
/**
* Project\Activity\Step\Trigger Api Controller
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @protected
*/
class Trigger extends Api
@@ -14,13 +17,17 @@ class Trigger extends Api
/**
* @param string $projectUid {@min 1} {@max 32}
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
* @return array
*
* @url GET /:projectUid/triggers
*/
public function doGetTriggers($projectUid)
{
try {
$trigger = new \BusinessModel\Trigger();
$response = $trigger->getTriggersCriteria($projectUid);
$response = $trigger->getTriggers($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
@@ -30,6 +37,9 @@ class Trigger extends Api
/**
* @param string $projectUid {@min 1} {@max 32}
* @param string $triggerUid {@min 1} {@max 32}
* @return array
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @url GET /:projectUid/trigger/:triggerUid
*/
@@ -52,6 +62,10 @@ class Trigger extends Api
* @param string $tri_type {@from body} {@choice SCRIPT}
* @param string $tri_webbot {@from body}
* @param string $tri_param {@from body}
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @url POST /:projectUid/trigger
*/
@@ -75,6 +89,10 @@ class Trigger extends Api
* @param string $tri_type {@from body} {@choice SCRIPT}
* @param string $tri_webbot {@from body}
* @param string $tri_param {@from body}
* @return void
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @url PUT /:projectUid/trigger/:triggerUid
*/
@@ -92,7 +110,11 @@ class Trigger extends Api
/**
* @param string $projectUid {@min 1} {@max 32}
* @param string $triggerUid {@min 1} {@max 32}
*
* @return void
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @url DELETE /:projectUid/trigger/:triggerUid
*/
public function doDeleteTrigger($projectUid, $triggerUid)
@@ -100,7 +122,6 @@ class Trigger extends Api
try {
$trigger = new \BusinessModel\Trigger();
$response = $trigger->deleteTrigger($triggerUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}

View File

@@ -20,6 +20,7 @@ debug = 1
project = "Services\Api\ProcessMaker\Project"
trigger2 = "Services\Api\ProcessMaker\Project\Trigger"
input-document = "Services\Api\ProcessMaker\Project\Inputdocument"
output-documents = "Services\Api\ProcessMaker\Project\OutputDocuments"
[alias: projects]
project = "Services\Api\ProcessMaker\Project"