diff --git a/src/modules/task-manager/controllers/workspace.controller.ts b/src/modules/task-manager/controllers/workspace.controller.ts index beabd33..591a658 100644 --- a/src/modules/task-manager/controllers/workspace.controller.ts +++ b/src/modules/task-manager/controllers/workspace.controller.ts @@ -10,6 +10,8 @@ import { PermissionEnum } from '../../users/enums/permission.enum'; import { UserDec } from '../../../common/decorators/user.decorator'; import { AuthGuards } from '../../../common/decorators/auth-guard.decorator'; import { ITokenPayload } from '../../auth/interfaces/IToken-payload'; +import { ParamDto } from '../../../common/DTO/param.dto'; +import { User } from '../../users/entities/user.entity'; @AuthGuards() @AdminRoute() @@ -28,6 +30,14 @@ export class WorkspaceController { return this.workspaceService.findOneOrFail(id); } + @Get(':id/users') + @ApiOperation({ summary: 'Get workspace users' }) + @ApiResponse({ status: 200, description: 'Got Workspace Users Successfully!' }) + @ApiResponse({ status: 404, description: 'Workspace Not Found!' }) + getWorkspaceUsers(@Param() paramDto: ParamDto): Promise { + return this.workspaceService.getWorkspaceUsers(paramDto.id); + } + @Post() @PermissionsDec(PermissionEnum.WORKSPACE_CREATE) @ApiOperation({ summary: 'Create a new workspace' }) diff --git a/src/modules/task-manager/providers/workspace.service.ts b/src/modules/task-manager/providers/workspace.service.ts index 7e43db4..9c43090 100644 --- a/src/modules/task-manager/providers/workspace.service.ts +++ b/src/modules/task-manager/providers/workspace.service.ts @@ -71,4 +71,9 @@ export class WorkspaceService { } return await this.workspaceRepository.findByUser(userId); } + + async getWorkspaceUsers(workspaceId: string): Promise { + const workspace = await this.findOneOrFail(workspaceId); + return workspace.users; + } } diff --git a/src/modules/task-manager/repositories/workspace.repository.ts b/src/modules/task-manager/repositories/workspace.repository.ts index 04b4697..3a4a85d 100644 --- a/src/modules/task-manager/repositories/workspace.repository.ts +++ b/src/modules/task-manager/repositories/workspace.repository.ts @@ -16,7 +16,8 @@ export class WorkspaceRepository extends Repository { 'workspace', 'user.id', 'user.firstName', - 'user.lastName' + 'user.lastName', + 'user.profilePic', ]).where('workspace.id = :workspaceId', {workspaceId}) .getOne(); }