PMCORE-3050 Rest Services - CRUD My task column settings

This commit is contained in:
Roly Rudy Gutierrez Pinto
2021-07-07 10:35:28 -04:00
parent 759075c979
commit 12dff0c33e
10 changed files with 1618 additions and 0 deletions

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

View File

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