PMCORE-3050 Rest Services - CRUD My task column settings
This commit is contained in:
96
workflow/engine/src/ProcessMaker/Model/UserConfig.php
Normal file
96
workflow/engine/src/ProcessMaker/Model/UserConfig.php
Normal file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
namespace ProcessMaker\Model;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use stdClass;
|
||||
|
||||
class UserConfig extends Model
|
||||
{
|
||||
/**
|
||||
* Bind table.
|
||||
* @var string
|
||||
*/
|
||||
protected $table = 'USER_CONFIG';
|
||||
|
||||
/**
|
||||
* Column timestamps.
|
||||
* @var boolean
|
||||
*/
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Get user setting.
|
||||
* @param int $id
|
||||
* @param string $name
|
||||
* @return mix array|null
|
||||
*/
|
||||
public static function getSetting(int $id, string $name)
|
||||
{
|
||||
$userConfig = UserConfig::where('USR_ID', '=', $id)
|
||||
->where('USC_NAME', '=', $name)
|
||||
->get()
|
||||
->first();
|
||||
if (empty($userConfig)) {
|
||||
return null;
|
||||
}
|
||||
return [
|
||||
"id" => $userConfig->USR_ID,
|
||||
"name" => $userConfig->USC_NAME,
|
||||
"setting" => json_decode($userConfig->USC_SETTING)
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Add user setting.
|
||||
* @param int $id
|
||||
* @param string $name
|
||||
* @param string $setting
|
||||
* @return mix array|null
|
||||
*/
|
||||
public static function addSetting(int $id, string $name, string $setting)
|
||||
{
|
||||
$userConfig = UserConfig::getSetting($id, $name);
|
||||
if (empty($userConfig)) {
|
||||
$model = new UserConfig();
|
||||
$model->USR_ID = $id;
|
||||
$model->USC_NAME = $name;
|
||||
$model->USC_SETTING = $setting;
|
||||
$model->save();
|
||||
|
||||
$userConfig = UserConfig::getSetting($id, $name);
|
||||
}
|
||||
return $userConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit user setting.
|
||||
* @param int $id
|
||||
* @param string $name
|
||||
* @param string $setting
|
||||
* @return mix array|null
|
||||
*/
|
||||
public static function editSetting(int $id, string $name, string $setting)
|
||||
{
|
||||
UserConfig::where('USR_ID', '=', $id)
|
||||
->where('USC_NAME', '=', $name)
|
||||
->update(["USC_SETTING" => $setting]);
|
||||
|
||||
return UserConfig::getSetting($id, $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete user setting.
|
||||
* @param int $id
|
||||
* @param string $name
|
||||
* @return mix array|null
|
||||
*/
|
||||
public static function deleteSetting(int $id, string $name)
|
||||
{
|
||||
$userConfig = UserConfig::getSetting($id, $name);
|
||||
UserConfig::where('USR_ID', '=', $id)
|
||||
->where('USC_NAME', '=', $name)
|
||||
->delete();
|
||||
return $userConfig;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ use ProcessMaker\BusinessModel\Cases\Unassigned;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use ProcessMaker\Model\Process;
|
||||
use ProcessMaker\Model\User;
|
||||
use ProcessMaker\Model\UserConfig;
|
||||
use ProcessMaker\Model\Task;
|
||||
use ProcessMaker\Services\Api;
|
||||
use ProcessMaker\Util\DateTime;
|
||||
@@ -732,4 +733,66 @@ class Home extends Api
|
||||
throw new RestException(404, "Process with Uid '{$processUid}'.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user setting.
|
||||
* @params int $id
|
||||
* @params string $name
|
||||
* @url GET /config
|
||||
* @return array
|
||||
* @throws Exception
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_CASES}
|
||||
*/
|
||||
public function doGetConfig(int $id, string $name)
|
||||
{
|
||||
return UserConfig::getSetting($id, $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add user setting.
|
||||
* @params int $id
|
||||
* @params string $name
|
||||
* @params string $setting
|
||||
* @url POST /config
|
||||
* @return array
|
||||
* @throws Exception
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_CASES}
|
||||
*/
|
||||
public function doPostConfig(int $id, string $name, string $setting)
|
||||
{
|
||||
return UserConfig::addSetting($id, $name, $setting);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user setting.
|
||||
* @params int $id
|
||||
* @params string $name
|
||||
* @params string $setting
|
||||
* @url PUT /config
|
||||
* @return array
|
||||
* @throws Exception
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_CASES}
|
||||
*/
|
||||
public function doPutConfig(int $id, string $name, string $setting)
|
||||
{
|
||||
return UserConfig::editSetting($id, $name, $setting);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete user setting.
|
||||
* @params int $id
|
||||
* @params string $name
|
||||
* @url DELETE /config
|
||||
* @return array
|
||||
* @throws Exception
|
||||
* @access protected
|
||||
* @class AccessControl {@permission PM_CASES}
|
||||
*/
|
||||
public function doDeleteConfig(int $id, string $name)
|
||||
{
|
||||
return UserConfig::deleteSetting($id, $name);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user