From e68b5c48ad5582134d0575698f98b660ef4d083b Mon Sep 17 00:00:00 2001 From: devanshu052000 Date: Wed, 21 May 2025 16:48:33 +0530 Subject: [PATCH] Combined both DTOs to reduce duplicate code --- .../LeftSidebar/PageMenu/PagePermission.jsx | 4 +-- server/ee | 2 +- .../src/modules/app-permissions/controller.ts | 10 +++---- .../src/modules/app-permissions/dto/index.ts | 27 ++----------------- .../app-permissions/interfaces/IController.ts | 10 +++---- .../app-permissions/interfaces/IService.ts | 12 ++++----- .../interfaces/IUtilService.ts | 6 ++--- server/src/modules/app-permissions/service.ts | 8 +++--- .../modules/app-permissions/util.service.ts | 6 ++--- 9 files changed, 31 insertions(+), 54 deletions(-) diff --git a/frontend/src/AppBuilder/LeftSidebar/PageMenu/PagePermission.jsx b/frontend/src/AppBuilder/LeftSidebar/PageMenu/PagePermission.jsx index e82f251665..bd7a865a54 100644 --- a/frontend/src/AppBuilder/LeftSidebar/PageMenu/PagePermission.jsx +++ b/frontend/src/AppBuilder/LeftSidebar/PageMenu/PagePermission.jsx @@ -177,7 +177,7 @@ export default function PagePermission({ darkMode }) { const createPagePermission = () => { const body = { - pageId: editingPage?.id, + id: editingPage?.id, type: PERMISSION_TYPES[pagePermissionType], ...(pagePermissionType === 'group' ? { groups: selectedUserGroups.map((group) => group?.value) } @@ -205,7 +205,7 @@ export default function PagePermission({ darkMode }) { const updatePagePermission = () => { const body = { - pageId: editingPage?.id, + id: editingPage?.id, type: PERMISSION_TYPES[pagePermissionType], ...(pagePermissionType === 'group' ? { groups: selectedUserGroups.map((group) => group?.value) } diff --git a/server/ee b/server/ee index c1d051b043..f61295c5f8 160000 --- a/server/ee +++ b/server/ee @@ -1 +1 @@ -Subproject commit c1d051b04364f9a2db333b3cffb77d611d50c8eb +Subproject commit f61295c5f85c354048f15275d4b3af52019d95b3 diff --git a/server/src/modules/app-permissions/controller.ts b/server/src/modules/app-permissions/controller.ts index aac1e532a1..d317e3115b 100644 --- a/server/src/modules/app-permissions/controller.ts +++ b/server/src/modules/app-permissions/controller.ts @@ -8,7 +8,7 @@ import { MODULES } from '@modules/app/constants/modules'; import { InitFeature } from '@modules/app/decorators/init-feature.decorator'; import { FEATURE_KEY } from './constants'; import { JwtAuthGuard } from '@modules/session/guards/jwt-auth.guard'; -import { CreatePagePermissionDto, CreateQueryPermissionDto } from './dto'; +import { CreatePermissionDto } from './dto'; @InitModule(MODULES.APP_PERMISSIONS) @UseGuards(JwtAuthGuard, FeatureAbilityGuard) @@ -53,7 +53,7 @@ export class AppPermissionsController implements IAppPermissionsController { @User() user, @Param('appId') appId: string, @Param('pageId') pageId: string, - @Body() body: CreatePagePermissionDto, + @Body() body: CreatePermissionDto, @Res({ passthrough: true }) response: Response ): Promise { throw new NotFoundException(); @@ -65,7 +65,7 @@ export class AppPermissionsController implements IAppPermissionsController { @User() user, @Param('appId') appId: string, @Param('pageId') pageId: string, - @Body() body: CreatePagePermissionDto, + @Body() body: CreatePermissionDto, @Res({ passthrough: true }) response: Response ): Promise { throw new NotFoundException(); @@ -99,7 +99,7 @@ export class AppPermissionsController implements IAppPermissionsController { @User() user, @Param('appId') appId: string, @Param('queryId') queryId: string, - @Body() body: CreateQueryPermissionDto, + @Body() body: CreatePermissionDto, @Res({ passthrough: true }) response: Response ): Promise { throw new NotFoundException(); @@ -111,7 +111,7 @@ export class AppPermissionsController implements IAppPermissionsController { @User() user, @Param('appId') appId: string, @Param('queryId') queryId: string, - @Body() body: CreateQueryPermissionDto, + @Body() body: CreatePermissionDto, @Res({ passthrough: true }) response: Response ): Promise { throw new NotFoundException(); diff --git a/server/src/modules/app-permissions/dto/index.ts b/server/src/modules/app-permissions/dto/index.ts index ac4a2c8df6..b32fafe0a1 100644 --- a/server/src/modules/app-permissions/dto/index.ts +++ b/server/src/modules/app-permissions/dto/index.ts @@ -2,33 +2,10 @@ import { IsUUID, IsEnum, IsArray, IsString, IsOptional, ValidateIf } from 'class import { Type } from 'class-transformer'; import { PAGE_PERMISSION_TYPE } from '../constants'; -export class CreatePagePermissionDto { +export class CreatePermissionDto { @IsUUID(4) @IsOptional() - pageId: string; - - @IsEnum(PAGE_PERMISSION_TYPE) - type: PAGE_PERMISSION_TYPE; - - @ValidateIf((o) => o.type === PAGE_PERMISSION_TYPE.SINGLE) - @IsArray() - @IsString({ each: true }) - @IsOptional() - @Type(() => String) - users?: string[]; - - @ValidateIf((o) => o.type === PAGE_PERMISSION_TYPE.GROUP) - @IsArray() - @IsString({ each: true }) - @IsOptional() - @Type(() => String) - groups?: string[]; -} - -export class CreateQueryPermissionDto { - @IsUUID(4) - @IsOptional() - queryId: string; + id: string; @IsEnum(PAGE_PERMISSION_TYPE) type: PAGE_PERMISSION_TYPE; diff --git a/server/src/modules/app-permissions/interfaces/IController.ts b/server/src/modules/app-permissions/interfaces/IController.ts index 4feb039ca0..a7808d280d 100644 --- a/server/src/modules/app-permissions/interfaces/IController.ts +++ b/server/src/modules/app-permissions/interfaces/IController.ts @@ -1,6 +1,6 @@ import { User } from '@entities/user.entity'; import { Response } from 'express'; -import { CreatePagePermissionDto, CreateQueryPermissionDto } from '../dto'; +import { CreatePermissionDto } from '../dto'; export interface IAppPermissionsController { fetchUsers(user: User, appId: string, response: Response): Promise; @@ -13,7 +13,7 @@ export interface IAppPermissionsController { user: User, appId: string, pageId: string, - body: CreatePagePermissionDto, + body: CreatePermissionDto, response: Response ): Promise; @@ -21,7 +21,7 @@ export interface IAppPermissionsController { user: User, appId: string, pageId: string, - body: CreatePagePermissionDto, + body: CreatePermissionDto, response: Response ): Promise; @@ -33,7 +33,7 @@ export interface IAppPermissionsController { user: User, appId: string, queryId: string, - body: CreateQueryPermissionDto, + body: CreatePermissionDto, response: Response ): Promise; @@ -41,7 +41,7 @@ export interface IAppPermissionsController { user: User, appId: string, queryId: string, - body: CreateQueryPermissionDto, + body: CreatePermissionDto, response: Response ): Promise; diff --git a/server/src/modules/app-permissions/interfaces/IService.ts b/server/src/modules/app-permissions/interfaces/IService.ts index 58a64dfc68..aa1892da43 100644 --- a/server/src/modules/app-permissions/interfaces/IService.ts +++ b/server/src/modules/app-permissions/interfaces/IService.ts @@ -1,5 +1,5 @@ import { User } from '@entities/user.entity'; -import { CreatePagePermissionDto } from '../dto'; +import { CreatePermissionDto } from '../dto'; import { PERMISSION_ENTITY_TYPE } from '../constants'; export interface IAppPermissionsService { @@ -7,17 +7,17 @@ export interface IAppPermissionsService { fetchUserGroups(appId: string, user: User): Promise; - fetchAppPermissions(type: PERMISSION_ENTITY_TYPE, pageId: string): Promise; + fetchAppPermissions(type: PERMISSION_ENTITY_TYPE, id: string): Promise; - createAppPermissions(type: PERMISSION_ENTITY_TYPE, pageId: string, body: CreatePagePermissionDto): Promise; + createAppPermissions(type: PERMISSION_ENTITY_TYPE, id: string, body: CreatePermissionDto): Promise; updateAppPermissions( type: PERMISSION_ENTITY_TYPE, appId: string, - pageId: string, - body: CreatePagePermissionDto, + id: string, + body: CreatePermissionDto, user: User ): Promise; - deleteAppPermissions(type: PERMISSION_ENTITY_TYPE, pageId: string): Promise; + deleteAppPermissions(type: PERMISSION_ENTITY_TYPE, id: string): Promise; } diff --git a/server/src/modules/app-permissions/interfaces/IUtilService.ts b/server/src/modules/app-permissions/interfaces/IUtilService.ts index 06654ed9e9..ea86fc05fe 100644 --- a/server/src/modules/app-permissions/interfaces/IUtilService.ts +++ b/server/src/modules/app-permissions/interfaces/IUtilService.ts @@ -1,13 +1,13 @@ import { User } from '@entities/user.entity'; import { GroupPermissions } from '@entities/group_permissions.entity'; -import { CreatePagePermissionDto } from '../dto'; +import { CreatePermissionDto } from '../dto'; export interface IUtilService { getUsersWithViewAccess(appId: string, organizationId: string): Promise; getUserGroupsWithViewAccess(appId: string, organizationId: string): Promise; - createPagePermission(pageId: string, body: CreatePagePermissionDto): Promise; + createPagePermission(pageId: string, body: CreatePermissionDto): Promise; - updatePagePermission(pageId: string, body: CreatePagePermissionDto): Promise; + updatePagePermission(pageId: string, body: CreatePermissionDto): Promise; } diff --git a/server/src/modules/app-permissions/service.ts b/server/src/modules/app-permissions/service.ts index 637e144c8e..0aed033079 100644 --- a/server/src/modules/app-permissions/service.ts +++ b/server/src/modules/app-permissions/service.ts @@ -13,19 +13,19 @@ export class AppPermissionsService implements IAppPermissionsService { throw new Error('Method not implemented.'); } - async fetchAppPermissions(type, pageId) { + async fetchAppPermissions(type, id) { throw new Error('Method not implemented.'); } - async createAppPermissions(type, pageId, body) { + async createAppPermissions(type, id, body) { throw new Error('Method not implemented.'); } - async updateAppPermissions(type, appId, pageId, body, user) { + async updateAppPermissions(type, appId, id, body, user) { throw new Error('Method not implemented.'); } - async deleteAppPermissions(type, pageId) { + async deleteAppPermissions(type, id) { throw new Error('Method not implemented.'); } } diff --git a/server/src/modules/app-permissions/util.service.ts b/server/src/modules/app-permissions/util.service.ts index 71432a0e4b..327410e304 100644 --- a/server/src/modules/app-permissions/util.service.ts +++ b/server/src/modules/app-permissions/util.service.ts @@ -2,7 +2,7 @@ import { User } from '@entities/user.entity'; import { IUtilService } from './interfaces/IUtilService'; import { Injectable } from '@nestjs/common'; import { GroupPermissions } from '@entities/group_permissions.entity'; -import { CreatePagePermissionDto } from './dto'; +import { CreatePermissionDto } from './dto'; @Injectable() export class AppPermissionsUtilService implements IUtilService { @@ -16,11 +16,11 @@ export class AppPermissionsUtilService implements IUtilService { throw new Error('Method not implemented.'); } - async createPagePermission(pageId: string, body: CreatePagePermissionDto): Promise { + async createPagePermission(pageId: string, body: CreatePermissionDto): Promise { throw new Error('Method not implemented.'); } - async updatePagePermission(pageId: string, body: CreatePagePermissionDto): Promise { + async updatePagePermission(pageId: string, body: CreatePermissionDto): Promise { throw new Error('Method not implemented.'); } }