Files
luos/workflow/engine/services/rest/crud/Process.php
Erik Amaru Ortiz ce21ee6454 PM Rest Feature: added plugins support & more improvements
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
2012-08-23 13:01:19 -04:00

65 lines
2.8 KiB
PHP

<?php
class Services_Rest_Process
{
/**
* Implementation for 'GET' method for Rest API
*
* @param mixed $proUid 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($proUid=null)
{
$result = array();
try {
if (func_num_args() == 0) {
$criteria = new Criteria('workflow');
$criteria->addSelectColumn(ProcessPeer::PRO_UID);
$criteria->addSelectColumn(ProcessPeer::PRO_PARENT);
$criteria->addSelectColumn(ProcessPeer::PRO_TIME);
$criteria->addSelectColumn(ProcessPeer::PRO_TIMEUNIT);
$criteria->addSelectColumn(ProcessPeer::PRO_STATUS);
$criteria->addSelectColumn(ProcessPeer::PRO_TYPE_DAY);
$criteria->addSelectColumn(ProcessPeer::PRO_TYPE);
$criteria->addSelectColumn(ProcessPeer::PRO_ASSIGNMENT);
$criteria->addSelectColumn(ProcessPeer::PRO_SHOW_MAP);
$criteria->addSelectColumn(ProcessPeer::PRO_SHOW_MESSAGE);
$criteria->addSelectColumn(ProcessPeer::PRO_SHOW_DELEGATE);
$criteria->addSelectColumn(ProcessPeer::PRO_SHOW_DYNAFORM);
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$criteria->addSelectColumn(ProcessPeer::PRO_SUB_CATEGORY);
$criteria->addSelectColumn(ProcessPeer::PRO_INDUSTRY);
$criteria->addSelectColumn(ProcessPeer::PRO_UPDATE_DATE);
$criteria->addSelectColumn(ProcessPeer::PRO_CREATE_DATE);
$criteria->addSelectColumn(ProcessPeer::PRO_CREATE_USER);
$criteria->addSelectColumn(ProcessPeer::PRO_HEIGHT);
$criteria->addSelectColumn(ProcessPeer::PRO_WIDTH);
$criteria->addSelectColumn(ProcessPeer::PRO_TITLE_X);
$criteria->addSelectColumn(ProcessPeer::PRO_TITLE_Y);
$criteria->addSelectColumn(ProcessPeer::PRO_DEBUG);
$criteria->addSelectColumn(ProcessPeer::PRO_DYNAFORMS);
$criteria->addSelectColumn(ProcessPeer::PRO_DERIVATION_SCREEN_TPL);
$dataset = AppEventPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
while ($dataset->next()) {
$result[] = $dataset->getRow();
}
} else {
$record = ProcessPeer::retrieveByPK($proUid);
$result = $record->toArray(BasePeer::TYPE_FIELDNAME);
}
} catch (Exception $e) {
throw new RestException(412, $e->getMessage());
}
return $result;
}
}