Merged in victorsl/processmaker (pull request #77)

ProcessMaker-MA "Case Tracker (endpoints)"
This commit is contained in:
erik ao
2014-01-14 17:36:11 -04:00
5 changed files with 1035 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,99 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\CaseTracker Api Controller
*
* @protected
*/
class CaseTracker extends Api
{
/**
* @url GET /:projectUid/case-tracker/property
*/
public function doGetCaseTrackerProperty($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getCaseTracker($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/case-tracker/property
*
* @param string $projectUid
* @param CaseTrackerPutStructure $request_data
*/
public function doPutCaseTracker($projectUid, CaseTrackerPutStructure $request_data = null)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$arrayData = $caseTracker->getArrayDataFromRequestData($request_data);
$arrayData = $caseTracker->update($projectUid, $arrayData);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/case-tracker/objects
*/
public function doGetCaseTrackerObjects($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getCaseTrackerObjects($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/case-tracker/available-objects
*/
public function doGetCaseTrackerAvailableObjects($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getAvailableCaseTrackerObjects($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}
class CaseTrackerPutStructure
{
/**
* @var string {@from body}{@choice NONE,PROCESSMAP,STAGES}
*/
public $map_type;
/**
* @var bool {@from body}
*/
public $routing_history;
/**
* @var bool {@from body}
*/
public $message_history;
}

View File

@@ -0,0 +1,135 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\CaseTrackerObject Api Controller
*
* @protected
*/
class CaseTrackerObject extends Api
{
/**
* @url GET /:projectUid/case-tracker/object/:caseTrackerObjectUid
*/
public function doGetCaseTrackerObject($caseTrackerObjectUid, $projectUid)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$response = $caseTrackerObject->getCaseTrackerObject($caseTrackerObjectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url POST /:projectUid/case-tracker/object
*
* @param string $projectUid
* @param CaseTrackerObjectPostStructure $request_data
*
* @status 201
*/
public function doPostCaseTrackerObject($projectUid, CaseTrackerObjectPostStructure $request_data = null)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$arrayData = $caseTrackerObject->getArrayDataFromRequestData($request_data);
$arrayData = $caseTrackerObject->create($projectUid, $arrayData);
$response = $arrayData;
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/case-tracker/object/:caseTrackerObjectUid
*
* @param string $caseTrackerObjectUid
* @param string $projectUid
* @param CaseTrackerObjectPutStructure $request_data
*/
public function doPutCaseTrackerObject($caseTrackerObjectUid, $projectUid, CaseTrackerObjectPutStructure $request_data = null)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$arrayData = $caseTrackerObject->getArrayDataFromRequestData($request_data);
$arrayData = $caseTrackerObject->update($caseTrackerObjectUid, $arrayData);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url DELETE /:projectUid/case-tracker/object/:caseTrackerObjectUid
*/
public function doDeleteCaseTrackerObject($caseTrackerObjectUid, $projectUid)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$caseTrackerObject->delete($caseTrackerObjectUid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}
class CaseTrackerObjectPostStructure
{
/**
* @var string {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT}{@required true}
*/
public $cto_type_obj;
/**
* @var string {@from body}{@min 32}{@max 32}{@required true}
*/
public $cto_uid_obj;
/**
* @var string
*/
public $cto_condition;
/**
* @var int {@from body}{@min 1}
*/
public $cto_position;
}
class CaseTrackerObjectPutStructure
{
/**
* @var string {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT}
*/
public $cto_type_obj;
/**
* @var string {@from body}{@min 32}{@max 32}
*/
public $cto_uid_obj;
/**
* @var string
*/
public $cto_condition;
/**
* @var int {@from body}{@min 1}
*/
public $cto_position;
}

View File

@@ -26,6 +26,8 @@ debug = 1
supervisors = "Services\Api\ProcessMaker\Project\ProcessSupervisors"
process-permissions = "Services\Api\ProcessMaker\Project\ProcessPermissions"
case-scheduler = "Services\Api\ProcessMaker\Project\CaseScheduler"
case-tracker = "Services\Api\ProcessMaker\Project\CaseTracker"
case-tracker-object = "Services\Api\ProcessMaker\Project\CaseTrackerObject"
[alias: projects]
project = "Services\Api\ProcessMaker\Project"