import { Expose, plainToClass, Type } from "class-transformer"; import { FileDTO } from "src/file/dto/file.dto"; import { PublicUserDTO } from "src/user/dto/publicUser.dto"; export class ShareDTO { @Expose() id: string; @Expose() expiration: Date; @Expose() @Type(() => FileDTO) files: FileDTO[]; @Expose() @Type(() => PublicUserDTO) creator: PublicUserDTO; @Expose() description: string; @Expose() hasPassword: boolean; from(partial: Partial) { return plainToClass(ShareDTO, partial, { excludeExtraneousValues: true }); } fromList(partial: Partial[]) { return partial.map((part) => plainToClass(ShareDTO, part, { excludeExtraneousValues: true }), ); } }