diff --git a/server/src/ability/handlers/view-field.ability-handler.ts b/server/src/ability/handlers/view-field.ability-handler.ts index 219e910b3..c789b6d6b 100644 --- a/server/src/ability/handlers/view-field.ability-handler.ts +++ b/server/src/ability/handlers/view-field.ability-handler.ts @@ -15,12 +15,17 @@ import { relationAbilityChecker } from 'src/ability/ability.util'; import { ViewFieldWhereInput } from 'src/core/@generated/view-field/view-field-where.input'; import { PrismaService } from 'src/database/prisma.service'; import { assert } from 'src/utils/assert'; +import { ViewFieldWhereUniqueInput } from 'src/core/@generated/view-field/view-field-where-unique.input'; class ViewFieldArgs { where?: ViewFieldWhereInput; [key: string]: any; } +const isViewFieldWhereUniqueInput = ( + input: ViewFieldWhereInput | ViewFieldWhereUniqueInput, +): input is ViewFieldWhereUniqueInput => 'viewId_key' in input; + @Injectable() export class ReadViewFieldAbilityHandler implements IAbilityHandler { handle(ability: AppAbility) { @@ -59,7 +64,10 @@ export class UpdateViewFieldAbilityHandler implements IAbilityHandler { const gqlContext = GqlExecutionContext.create(context); const args = gqlContext.getArgs(); const viewField = await this.prismaService.client.viewField.findFirst({ - where: args.where, + where: + args.where && isViewFieldWhereUniqueInput(args.where) + ? args.where.viewId_key + : args.where, }); assert(viewField, '', NotFoundException);