Use FilteredApiResponse for GetUsers

This commit is contained in:
fipwmaqzufheoxq92ebc 2020-09-01 15:23:28 +02:00
parent 4690b1e595
commit 039126a6e9
No known key found for this signature in database
GPG Key ID: F4DF989490C2ADB7
3 changed files with 18 additions and 13 deletions

View File

@ -123,7 +123,7 @@ class UsersApiController extends BaseApiController
User::checkPermission($request, User::PERMISSION_USERS_READ);
try
{
return $this->ApiResponse($response, $this->getUsersService()->GetUsersAsDto());
return $this->FilteredApiResponse($response, $this->getUsersService()->GetUsersAsDto(), $request->getQueryParams());
}
catch (\Exception $ex)
{

15
migrations/0114.sql Normal file
View File

@ -0,0 +1,15 @@
CREATE VIEW users_dto
AS
SELECT id,
username,
first_name,
last_name,
row_created_timestamp,
(CASE
WHEN first_name = '' AND last_name != '' THEN last_name
WHEN last_name = '' AND first_name != '' THEN first_name
WHEN last_name != '' AND first_name != '' THEN first_name + ' ' + last_name
ELSE username
END
) AS display_name
FROM users;

View File

@ -81,19 +81,9 @@ class UsersService extends BaseService
return array_merge($GROCY_DEFAULT_USER_SETTINGS, $settings);
}
public function GetUsersAsDto()
public function GetUsersAsDto(): \LessQL\Result
{
$users = $this->getDatabase()->users();
$returnUsers = [];
foreach ($users as $user)
{
unset($user->password);
$user->display_name = GetUserDisplayName($user);
$returnUsers[] = $user;
}
return $returnUsers;
return $this->getDatabase()->users_dto();
}
public function SetUserSetting($userId, $settingKey, $settingValue)