diff options
Diffstat (limited to 'util/src/dtos/DmChannelDTO.ts')
-rw-r--r-- | util/src/dtos/DmChannelDTO.ts | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/util/src/dtos/DmChannelDTO.ts b/util/src/dtos/DmChannelDTO.ts index 8b7a18fd..226b2f9d 100644 --- a/util/src/dtos/DmChannelDTO.ts +++ b/util/src/dtos/DmChannelDTO.ts @@ -12,24 +12,30 @@ export class DmChannelDTO { type: number; static async from(channel: Channel, excluded_recipients: string[] = [], origin_channel_id?: string) { - const obj = new DmChannelDTO() - obj.icon = channel.icon || null - obj.id = channel.id - obj.last_message_id = channel.last_message_id || null - obj.name = channel.name || null - obj.origin_channel_id = origin_channel_id || null - obj.owner_id = channel.owner_id - obj.type = channel.type - obj.recipients = (await Promise.all(channel.recipients!.filter(r => !excluded_recipients.includes(r.user_id)).map(async r => { - return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }) - }))).map(u => new MinimalPublicUserDTO(u)) - return obj + const obj = new DmChannelDTO(); + obj.icon = channel.icon || null; + obj.id = channel.id; + obj.last_message_id = channel.last_message_id || null; + obj.name = channel.name || null; + obj.origin_channel_id = origin_channel_id || null; + obj.owner_id = channel.owner_id; + obj.type = channel.type; + obj.recipients = ( + await Promise.all( + channel + .recipients!.filter((r) => !excluded_recipients.includes(r.user_id)) + .map(async (r) => { + return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }); + }) + ) + ).map((u) => new MinimalPublicUserDTO(u)); + return obj; } excludedRecipients(excluded_recipients: string[]): DmChannelDTO { return { ...this, - recipients: this.recipients.filter(r => !excluded_recipients.includes(r.id)) - } + recipients: this.recipients.filter((r) => !excluded_recipients.includes(r.id)), + }; } -} \ No newline at end of file +} |