PMCORE-3186 Rest Services - CRUD My task column settings

This commit is contained in:
Roly Gutierrez
2021-07-28 13:35:33 -04:00
parent dbba9494b8
commit a1413a6002
3 changed files with 57 additions and 44 deletions

View File

@@ -15,6 +15,7 @@ class UserConfigTest extends TestCase
public function setUp() public function setUp()
{ {
parent::setUp(); parent::setUp();
UserConfig::truncate();
} }
/** /**
@@ -34,7 +35,7 @@ class UserConfigTest extends TestCase
{ {
$id = 1; $id = 1;
$name = "test"; $name = "test";
$setting = json_encode(["test" => 1]); $setting = ["test" => 1];
$result = UserConfig::addSetting($id, $name, $setting); $result = UserConfig::addSetting($id, $name, $setting);
//assert get //assert get
@@ -44,7 +45,7 @@ class UserConfigTest extends TestCase
$this->assertArrayHasKey("setting", $result); $this->assertArrayHasKey("setting", $result);
$this->assertEquals($result["id"], $id); $this->assertEquals($result["id"], $id);
$this->assertEquals($result["name"], $name); $this->assertEquals($result["name"], $name);
$this->assertEquals($result["setting"], json_decode($setting)); $this->assertEquals($result["setting"], (object) $setting);
} }
/** /**
@@ -56,7 +57,7 @@ class UserConfigTest extends TestCase
{ {
$id = 1; $id = 1;
$name = "test"; $name = "test";
$setting = json_encode(["test" => 1]); $setting = ["test" => 1];
$result = UserConfig::addSetting($id, $name, $setting); $result = UserConfig::addSetting($id, $name, $setting);
$this->assertArrayHasKey("id", $result); $this->assertArrayHasKey("id", $result);
@@ -64,7 +65,7 @@ class UserConfigTest extends TestCase
$this->assertArrayHasKey("setting", $result); $this->assertArrayHasKey("setting", $result);
$this->assertEquals($result["id"], $id); $this->assertEquals($result["id"], $id);
$this->assertEquals($result["name"], $name); $this->assertEquals($result["name"], $name);
$this->assertEquals($result["setting"], json_decode($setting)); $this->assertEquals($result["setting"], (object) $setting);
} }
/** /**
@@ -76,18 +77,18 @@ class UserConfigTest extends TestCase
{ {
$id = 1; $id = 1;
$name = "test"; $name = "test";
$setting = json_encode(["test" => 1]); $setting = ["test" => 1];
$result = UserConfig::addSetting($id, $name, $setting); $result = UserConfig::addSetting($id, $name, $setting);
//assert edit //assert edit
$setting = json_encode(["test" => 2, "test2" => 3]); $setting = ["test" => 2, "test2" => 3];
$result = UserConfig::editSetting($id, $name, $setting); $result = UserConfig::editSetting($id, $name, $setting);
$this->assertArrayHasKey("id", $result); $this->assertArrayHasKey("id", $result);
$this->assertArrayHasKey("name", $result); $this->assertArrayHasKey("name", $result);
$this->assertArrayHasKey("setting", $result); $this->assertArrayHasKey("setting", $result);
$this->assertEquals($result["id"], $id); $this->assertEquals($result["id"], $id);
$this->assertEquals($result["name"], $name); $this->assertEquals($result["name"], $name);
$this->assertEquals($result["setting"], json_decode($setting)); $this->assertEquals($result["setting"], (object) $setting);
} }
/** /**
@@ -99,7 +100,7 @@ class UserConfigTest extends TestCase
{ {
$id = 2; $id = 2;
$name = "test2"; $name = "test2";
$setting = json_encode(["test2" => 1]); $setting = ["test2" => 1];
$result = UserConfig::addSetting($id, $name, $setting); $result = UserConfig::addSetting($id, $name, $setting);
//assert delete //assert delete

View File

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

View File

@@ -825,64 +825,80 @@ class Home extends Api
/** /**
* Get user setting. * Get user setting.
* @params int $id * @url GET /config/:id/:name
* @params string $name * @param int $id
* @url GET /config * @param string $name
* @return array * @return array
* @throws Exception * @throws RestException
* @access protected * @access protected
* @class AccessControl {@permission PM_CASES} * @class AccessControl {@permission PM_CASES}
*/ */
public function doGetConfig(int $id, string $name) 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. * Add user setting.
* @params int $id
* @params string $name
* @params string $setting
* @url POST /config * @url POST /config
* @param int $id
* @param string $name
* @param array $setting
* @return array * @return array
* @throws Exception * @throws RestException
* @access protected * @access protected
* @class AccessControl {@permission PM_CASES} * @class AccessControl {@permission PM_CASES}
*/ */
public function doPostConfig(int $id, string $name, string $setting) public function doPostConfig(int $id, string $name, array $setting)
{ {
try {
return UserConfig::addSetting($id, $name, $setting); return UserConfig::addSetting($id, $name, $setting);
} catch (Exception $e) {
throw new RestException(Api::STAT_APP_EXCEPTION, G::LoadTranslation('ID_EXIST'));
}
} }
/** /**
* Update user setting. * Update user setting.
* @params int $id
* @params string $name
* @params string $setting
* @url PUT /config * @url PUT /config
* @param int $id
* @param string $name
* @param array $setting
* @return array * @return array
* @throws Exception * @throws RestException
* @access protected * @access protected
* @class AccessControl {@permission PM_CASES} * @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. * Delete user setting.
* @params int $id * @url DELETE /config/:id/:name
* @params string $name * @param int $id
* @url DELETE /config * @param string $name
* @return array * @return array
* @throws Exception * @throws RestException
* @access protected * @access protected
* @class AccessControl {@permission PM_CASES} * @class AccessControl {@permission PM_CASES}
*/ */
public function doDeleteConfig(int $id, string $name) 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;
} }
/** /**