@juzi/wechaty-puppet-whatsapp
Version:
Wechaty Puppet for WhatsApp
20 lines (18 loc) • 940 B
text/typescript
import type * as PUPPET from '@juzi/wechaty-puppet'
import { WA_ERROR_TYPE } from '../../exception/error-type.js'
import WAError from '../../exception/whatsapp-error.js'
import type { WhatsAppContactPayload as RoomPayload, GroupChat } from '../../schema/whatsapp-type.js'
export function parserRoomRawPayload (roomPayload: RoomPayload, roomChat: GroupChat): PUPPET.payloads.Room {
const roomId = roomPayload.id._serialized
if (roomChat.participants.length === 0) {
throw WAError(WA_ERROR_TYPE.ERR_ROOM_NOT_FOUND, `roomRawPayloadParser(${roomId}) can not get chat info for this room.`)
}
return {
adminIdList: roomChat.participants.filter(m => m.isAdmin || m.isSuperAdmin).map(m => m.id._serialized),
avatar: roomPayload.avatar,
id: roomId,
memberIdList: roomChat.participants.map(m => m.id._serialized),
ownerId: roomChat.owner?._serialized,
topic: roomPayload.name || roomPayload.pushname || '',
}
}