kenken999's picture
Upload folder using huggingface_hub
07c3cdd verified
Raw
History Blame Contribute Delete
7.34 kB
<?php
namespace ProcessMaker\Services\Api;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Department Api Controller
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @protected
*/
class Department extends Api
{
/**
* Constructor of the class
*
* return void
*/
public function __construct()
{
try {
$user = new \ProcessMaker\BusinessModel\User();
$usrUid = $this->getUserId();
if (!$user->checkPermission($usrUid, "PM_USERS")) {
throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION", array($usrUid)));
}
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* @url GET
*
* @return array
*
*/
public function doGetDepartments()
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->getDepartments();
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:dep_uid/assigned-user
*
* @param string $dep_uid {@min 1}{@max 32}
*
* @return array
*
*/
public function doGetAssignedUser($dep_uid)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->getUsers(
$dep_uid, 'ASSIGNED', null, null, null, null, null, false
);
return $response['data'];
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:dep_uid/available-user
*
* @param string $dep_uid {@min 1}{@max 32}
* @param string $start {@from path}
* @param string $limit {@from path}
* @param string $search {@from path}
*
* @return array
*
*/
public function doGetAvailableUser($dep_uid, $start = null, $limit = null, $search = null)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->getUsers(
$dep_uid, 'AVAILABLE', ['filter' => $search, 'filterOption' => ''], null, null, $start, $limit, false
);
return $response['data'];
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* Assign a user to a specified department in version 3.0 and later. If the
* user is already a member of another department, the user will be transfered
* to the specified department.
*
* @url POST /:dep_uid/assign-user
* @status 201
*
* @param string $dep_uid {@min 32}{@max 32}
* @param array $request_data
*
* @return array
* @throws RestException
*
* @access protected
* @class AccessControl {@permission PM_USERS}
*/
public function doPostAssignUser($dep_uid, array $request_data)
{
try {
$department = new \ProcessMaker\BusinessModel\Department();
$arrayData = $department->assignUser($dep_uid, $request_data);
} catch (\Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
}
/**
* @url DELETE /:dep_uid/unassign-user/:usr_uid
* @access protected
* @class AccessControl {@permission PM_USERS}
*
* @param string $dep_uid {@min 1}{@max 32}
* @param string $usr_uid {@min 1}{@max 32}
*
* @status 200
*
*/
public function doDeleteUnassignUser($dep_uid, $usr_uid)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$oDepartment->unassignUser($dep_uid, $usr_uid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* Update manager user
*
* @url PUT /:dep_uid/set-manager/:usr_uid
*
* @param string $dep_uid {@min 1}{@max 32}
* @param string $usr_uid {@min 1}{@max 32}
*
* @return array
* @throws RestException
*
* @access protected
* @class AccessControl {@permission PM_USERS}
*/
public function doPutSetManager($dep_uid, $usr_uid)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->setManagerUser($dep_uid, $usr_uid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:dep_uid
*
* @param string $dep_uid {@min 1}{@max 32}
*
* @return array
*
*/
public function doGetDepartment($dep_uid)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->getDepartment($dep_uid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* Create a new department.
*
* @url POST
* @status 201
*
* @param array $request_data
* @param string $dep_title {@from body} {@min 1}
*
* @return array
* @throws RestException
*
* @access protected
* @class AccessControl {@permission PM_USERS}
*/
public function doPost($request_data, $dep_title)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->saveDepartment($request_data);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* Update department.
*
* @url PUT /:dep_uid
*
* @param string $dep_uid {@min 1}{@max 32}
* @param array $request_data
*
* @throws RestException
*
* @access protected
* @class AccessControl {@permission PM_USERS}
*/
public function doPut($dep_uid, $request_data)
{
try {
$request_data['dep_uid'] = $dep_uid;
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$response = $oDepartment->saveDepartment($request_data, false);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url DELETE /:dep_uid
* @access protected
* @class AccessControl {@permission PM_USERS}
*
* @param string $dep_uid {@min 1}{@max 32}
*
* @return array
*
*/
public function doDelete($dep_uid)
{
try {
$oDepartment = new \ProcessMaker\BusinessModel\Department();
$oDepartment->deleteDepartment($dep_uid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}