ProcessMaker-MA "Case Tracker (endpoints)"

- Se han implementado los siguientes Endpoints:
     GET /api/1.0/{workspace}/project/{prj_uid}/case-tracker/property
     PUT /api/1.0/{workspace}/project/{prj_uid}/case-tracker/property
     GET /api/1.0/{workspace}/project/{prj_uid}/case-tracker/objects
     GET /api/1.0/{workspace}/project/{prj_uid}/case-tracker/available-objects
     GET /api/1.0/{workspace}/project/{prj_uid}/case-tracker/object/{obj_uid}
     POST /api/1.0/{workspace}/project/{prj_uid}/case-tracker/object
This commit is contained in:
Victor Saisa Lopez
2014-01-14 17:10:47 -04:00
parent bae2553369
commit 5b37be1fb8
5 changed files with 1035 additions and 0 deletions

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;
}