From 9ded1473545b8768586c738f0893a219cf6a513f Mon Sep 17 00:00:00 2001 From: realrafi Date: Thu, 9 Jul 2026 20:39:08 +0330 Subject: [PATCH] feat: added fineOne API for workspace & project for update purposes --- .../task-manager/controllers/project.controller.ts | 11 ++++++++++- .../task-manager/controllers/workspace.controller.ts | 10 ++++++++++ .../task-manager/providers/workspace.service.ts | 4 ---- src/modules/users/enums/permission.enum.ts | 2 +- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/modules/task-manager/controllers/project.controller.ts b/src/modules/task-manager/controllers/project.controller.ts index d63207b..d86d58e 100644 --- a/src/modules/task-manager/controllers/project.controller.ts +++ b/src/modules/task-manager/controllers/project.controller.ts @@ -20,6 +20,15 @@ import { ITokenPayload } from "../../auth/interfaces/IToken-payload"; export class ProjectController { constructor(private readonly projectService: ProjectService) {} + @Get(':id') + @ApiOperation({summary: 'Get one project by ID'}) + @ApiResponse({status: 200, description: 'received the project successfully!'}) + @ApiResponse({status: 404, description: 'Project Not Found!'}) + @ApiResponse({status: 400, description: 'Bad Request!'}) + findOne(@Param('id') id: string) { + return this.projectService.findOneOrFail(id); + } + @Post() @PermissionsDec(PermissionEnum.PROJECT) @ApiOperation({ summary: "Create a new project" }) @@ -63,7 +72,7 @@ export class ProjectController { return this.projectService.findUserProjectsByWorkspace(user.id, user.permissions, paramDto.id, pagination); } - @Get("project/:id") + @Get("detail/:id") @ApiOperation({ summary: "Get project detail" }) @ApiResponse({ status: 200, description: "Got Project Detail Successfully!" }) @ApiResponse({ status: 400, description: "Bad request!" }) diff --git a/src/modules/task-manager/controllers/workspace.controller.ts b/src/modules/task-manager/controllers/workspace.controller.ts index 8f53df3..e4bb06c 100644 --- a/src/modules/task-manager/controllers/workspace.controller.ts +++ b/src/modules/task-manager/controllers/workspace.controller.ts @@ -18,6 +18,16 @@ import { ITokenPayload } from '../../auth/interfaces/IToken-payload'; export class WorkspaceController { constructor(private readonly workspaceService: WorkspaceService) {} + @Get(':id') + @PermissionsDec(PermissionEnum.WORKSPACE) + @ApiOperation({summary: "Get one workspace by ID"}) + @ApiResponse({status: 200, description: 'Received workspace', type: TMWorkspace}) + @ApiResponse({status: 404, description: 'Workspace Not Found!'}) + @ApiResponse({status: 400, description: 'Bad Request!'}) + findOne(@Param('id') id: string): Promise { + return this.workspaceService.findOneOrFail(id); + } + @Post() @PermissionsDec(PermissionEnum.WORKSPACE) @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 931ecf7..08ecf04 100644 --- a/src/modules/task-manager/providers/workspace.service.ts +++ b/src/modules/task-manager/providers/workspace.service.ts @@ -17,10 +17,6 @@ export class WorkspaceService { private readonly userRepository: Repository, ) {} - findAll(): Promise { - return this.workspaceRepository.find({}); - } - async findOneOrFail(id: string): Promise { const workspace = await this.workspaceRepository.findOneWorkSpace(id); if (!workspace) throw new NotFoundException(WorkSpaceMessage.WORKSPACE_NOT_FOUND); diff --git a/src/modules/users/enums/permission.enum.ts b/src/modules/users/enums/permission.enum.ts index d59cdc8..bb8ea4f 100755 --- a/src/modules/users/enums/permission.enum.ts +++ b/src/modules/users/enums/permission.enum.ts @@ -25,7 +25,7 @@ export enum PermissionEnum { DPAGE = "dpage", DMAIL = 'dmail', RESELLER="reseller", - WORKSPACE="workspace", // create, update, remove + WORKSPACE="workspace", // create, update, remove, read-one(for update purposes) VIEW_ALL_WORKSPACES="view_all_workspaces", PROJECT="project", // create, update, remove VIEW_ALL_PROJECTS="view_all_projects",