from a plugin a rest class can be registered now:
on setup method add the following:
---
$this->registerRestService('Sample', [optional string: $path]);
--
and create the folder PATH_PLUGIN . /your_plugin/classes/rest
next add a class with the flowing characteristics:
<?php
class Plugin_Services_Rest_Sample
{
public function get()
{
return 'hello world';
}
}
A class prefixed with Plugin_Services_Rest_
and add the corresponding methods for a Restler api
(http://luracast.com/products/restler/)
Finally on process maker will be exposed as:
via GET: http://127.0.0.1/rest/workflow/sample
81 lines
3.9 KiB
PHP
81 lines
3.9 KiB
PHP
<?php
|
|
|
|
class Services_Rest_Task
|
|
{
|
|
/**
|
|
* Implementation for 'GET' method for Rest API
|
|
*
|
|
* @param mixed $tasUid Primary key
|
|
*
|
|
* @return array $result Returns array within multiple records or a single record depending if
|
|
* a single selection was requested passing id(s) as param
|
|
*/
|
|
protected function get($tasUid=null)
|
|
{
|
|
$result = array();
|
|
try {
|
|
if (func_num_args() == 0) {
|
|
$criteria = new Criteria('workflow');
|
|
|
|
$criteria->addSelectColumn(TaskPeer::PRO_UID);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_UID);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TYPE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_DURATION);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_DELAY_TYPE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TEMPORIZER);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TYPE_DAY);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TIMEUNIT);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_ALERT);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_PRIORITY_VARIABLE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_TYPE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_VARIABLE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_MI_INSTANCE_VARIABLE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_MI_COMPLETE_VARIABLE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_LOCATION);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_LOCATION_ADHOC);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TRANSFER_FLY);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_LAST_ASSIGNED);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_USER);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_CAN_UPLOAD);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_VIEW_UPLOAD);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_CAN_CANCEL);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_OWNER_APP);
|
|
$criteria->addSelectColumn(TaskPeer::STG_UID);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_CAN_PAUSE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_CAN_SEND_MESSAGE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_CAN_DELETE_DOCS);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_SELF_SERVICE);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_START);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_TO_LAST_USER);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_SEND_LAST_EMAIL);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_DERIVATION);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_POSX);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_POSY);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_WIDTH);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_HEIGHT);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_COLOR);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_EVN_UID);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_BOUNDARY);
|
|
$criteria->addSelectColumn(TaskPeer::TAS_DERIVATION_SCREEN_TPL);
|
|
|
|
$dataset = AppEventPeer::doSelectRS($criteria);
|
|
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
|
|
|
while ($dataset->next()) {
|
|
$result[] = $dataset->getRow();
|
|
}
|
|
} else {
|
|
$record = TaskPeer::retrieveByPK($tasUid);
|
|
$result = $record->toArray(BasePeer::TYPE_FIELDNAME);
|
|
}
|
|
} catch (Exception $e) {
|
|
throw new RestException(412, $e->getMessage());
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
}
|