Merged in bugfix/PMCORE-3186 (pull request #8004)

PMCORE-3186 Rest Services - CRUD My task column settings

Approved-by: Julio Cesar Laura Avendaño
This commit is contained in:
Roly Rudy Gutierrez Pinto
2021-07-28 19:52:29 +00:00
committed by Julio Cesar Laura Avendaño
3 changed files with 57 additions and 44 deletions

View File

@@ -45,21 +45,17 @@ class UserConfig extends Model
* Add user setting.
* @param int $id
* @param string $name
* @param string $setting
* @param array $setting
* @return mix array|null
*/
public static function addSetting(int $id, string $name, string $setting)
public static function addSetting(int $id, string $name, array $setting)
{
$model = new UserConfig();
$model->USR_ID = $id;
$model->USC_NAME = $name;
$model->USC_SETTING = json_encode($setting);
$model->save();
$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;
}
@@ -67,14 +63,14 @@ class UserConfig extends Model
* Edit user setting.
* @param int $id
* @param string $name
* @param string $setting
* @param array $setting
* @return mix array|null
*/
public static function editSetting(int $id, string $name, string $setting)
public static function editSetting(int $id, string $name, array $setting)
{
UserConfig::where('USR_ID', '=', $id)
->where('USC_NAME', '=', $name)
->update(["USC_SETTING" => $setting]);
->update(["USC_SETTING" => json_encode($setting)]);
return UserConfig::getSetting($id, $name);
}

View File

@@ -829,64 +829,80 @@ class Home extends Api
/**
* Get user setting.
* @params int $id
* @params string $name
* @url GET /config
* @url GET /config/:id/:name
* @param int $id
* @param string $name
* @return array
* @throws Exception
* @throws RestException
* @access protected
* @class AccessControl {@permission PM_CASES}
*/
public function doGetConfig(int $id, string $name)
{
return UserConfig::getSetting($id, $name);
$setting = UserConfig::getSetting($id, $name);
if (is_null($setting)) {
throw new RestException(Api::STAT_APP_EXCEPTION, G::LoadTranslation('ID_DOES_NOT_EXIST'));
}
return $setting;
}
/**
* Add user setting.
* @params int $id
* @params string $name
* @params string $setting
* @url POST /config
* @param int $id
* @param string $name
* @param array $setting
* @return array
* @throws Exception
* @throws RestException
* @access protected
* @class AccessControl {@permission PM_CASES}
*/
public function doPostConfig(int $id, string $name, string $setting)
public function doPostConfig(int $id, string $name, array $setting)
{
return UserConfig::addSetting($id, $name, $setting);
try {
return UserConfig::addSetting($id, $name, $setting);
} catch (Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, G::LoadTranslation('ID_EXIST'));
}
}
/**
* Update user setting.
* @params int $id
* @params string $name
* @params string $setting
* @url PUT /config
* @param int $id
* @param string $name
* @param array $setting
* @return array
* @throws Exception
* @throws RestException
* @access protected
* @class AccessControl {@permission PM_CASES}
*/
public function doPutConfig(int $id, string $name, string $setting)
public function doPutConfig(int $id, string $name, array $setting)
{
return UserConfig::editSetting($id, $name, $setting);
$setting = UserConfig::editSetting($id, $name, $setting);
if (is_null($setting)) {
throw new RestException(Api::STAT_APP_EXCEPTION, G::LoadTranslation('ID_DOES_NOT_EXIST'));
}
return $setting;
}
/**
* Delete user setting.
* @params int $id
* @params string $name
* @url DELETE /config
* @url DELETE /config/:id/:name
* @param int $id
* @param string $name
* @return array
* @throws Exception
* @throws RestException
* @access protected
* @class AccessControl {@permission PM_CASES}
*/
public function doDeleteConfig(int $id, string $name)
{
return UserConfig::deleteSetting($id, $name);
$setting = UserConfig::deleteSetting($id, $name);
if (is_null($setting)) {
throw new RestException(Api::STAT_APP_EXCEPTION, G::LoadTranslation('ID_DOES_NOT_EXIST'));
}
return $setting;
}
/**