diff --git a/apps/api/src/app/admin/admin.controller.ts b/apps/api/src/app/admin/admin.controller.ts index e0444d112..ba3762c4e 100644 --- a/apps/api/src/app/admin/admin.controller.ts +++ b/apps/api/src/app/admin/admin.controller.ts @@ -352,7 +352,17 @@ export class AdminController { @Get('user') @HasPermission(permissions.accessAdminControl) @UseGuards(AuthGuard('jwt'), HasPermissionGuard) - public async getUsers(): Promise { - return this.adminService.getUsers(); + public async getUsers( + @Query('skip') skip?: number, + @Query('take') take?: number, + @Query('sortColumn') sortColumn?: string, + @Query('sortDirection') sortDirection?: Prisma.SortOrder + ): Promise { + return this.adminService.getUsers({ + skip: isNaN(skip) ? undefined : skip, + take: isNaN(take) ? undefined : take, + sortColumn, + sortDirection, + }); } } diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 6c3d7c141..14e4e8120 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -427,8 +427,17 @@ export class AdminService { }; } - public async getUsers(): Promise { - return { users: await this.getUsersWithAnalytics() }; + public async getUsers({ skip, take, sortColumn, sortDirection }: { + skip?: number; + take?: number; + sortColumn?: string; + sortDirection?: Prisma.SortOrder; + }): Promise { + return this.userRepository.find({ + skip, + take, + orderBy: sortColumn ? { [sortColumn]: sortDirection } : undefined, + }); } public async patchAssetProfileData({