diff --git a/src/notes/note-metadata.dto.ts b/src/notes/note-metadata.dto.ts index f76859e43..622bf0984 100644 --- a/src/notes/note-metadata.dto.ts +++ b/src/notes/note-metadata.dto.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; import { IsArray, IsDate, @@ -104,14 +105,15 @@ export class NoteMetadataDto extends BaseDto { * @example "['john.smith', 'jane.smith']" */ @IsArray() - @ValidateNested() + @IsString({ each: true }) @ApiProperty() - editedBy: UserInfoDto['username'][]; + editedBy: string[]; /** * Permissions currently in effect for the note */ - @ValidateNested() + @ValidateNested({ each: true }) + @Type(() => NotePermissionsDto) @ApiProperty({ type: NotePermissionsDto }) permissions: NotePermissionsDto; } diff --git a/src/notes/note-permissions.dto.ts b/src/notes/note-permissions.dto.ts index 4626d2ddb..56424f68a 100644 --- a/src/notes/note-permissions.dto.ts +++ b/src/notes/note-permissions.dto.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; import { IsArray, IsBoolean, @@ -96,16 +97,18 @@ export class NotePermissionsDto { /** * List of users the note is shared with */ - @ValidateNested() + @ValidateNested({ each: true }) @IsArray() + @Type(() => NoteUserPermissionEntryDto) @ApiProperty({ isArray: true, type: NoteUserPermissionEntryDto }) sharedToUsers: NoteUserPermissionEntryDto[]; /** * List of groups the note is shared with */ - @ValidateNested() + @ValidateNested({ each: true }) @IsArray() + @Type(() => NoteGroupPermissionEntryDto) @ApiProperty({ isArray: true, type: NoteGroupPermissionEntryDto }) sharedToGroups: NoteGroupPermissionEntryDto[]; } @@ -115,7 +118,8 @@ export class NotePermissionsUpdateDto { * List of users the note should be shared with */ @IsArray() - @ValidateNested() + @ValidateNested({ each: true }) + @Type(() => NoteUserPermissionUpdateDto) @ApiProperty({ isArray: true, type: NoteUserPermissionUpdateDto }) sharedToUsers: NoteUserPermissionUpdateDto[]; @@ -123,7 +127,8 @@ export class NotePermissionsUpdateDto { * List of groups the note should be shared with */ @IsArray() - @ValidateNested() + @ValidateNested({ each: true }) + @Type(() => NoteGroupPermissionUpdateDto) @ApiProperty({ isArray: true, type: NoteGroupPermissionUpdateDto }) sharedToGroups: NoteGroupPermissionUpdateDto[]; } diff --git a/src/notes/note.dto.ts b/src/notes/note.dto.ts index 2a988e93c..ddba4d72e 100644 --- a/src/notes/note.dto.ts +++ b/src/notes/note.dto.ts @@ -4,6 +4,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; import { IsArray, IsString, ValidateNested } from 'class-validator'; import { EditDto } from '../revisions/edit.dto'; @@ -31,6 +32,7 @@ export class NoteDto extends BaseDto { */ @IsArray() @ValidateNested({ each: true }) + @Type(() => EditDto) @ApiProperty({ isArray: true, type: EditDto }) editedByAtPosition: EditDto[]; }