UNPKG

@solufy/evolution-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

76 lines (71 loc) 2.37 kB
// src/modules/groups/schemas/find-all.ts import { z as z2 } from "zod"; // src/modules/groups/schemas/common.ts import { z } from "zod"; // src/types/tags.ts var Jid = (jid) => jid; var GroupJid = (jid) => jid; // src/utils/phone-numer-from-jid.ts import { parsePhoneNumber } from "libphonenumber-js"; function phoneNumberFromJid(jid) { return parsePhoneNumber(`+${jid.split("@")[0]}`).number; } // src/modules/groups/schemas/common.ts var GroupResponseSchema = z.object({ id: z.string(), subject: z.string(), subjectOwner: z.string(), subjectTime: z.coerce.date(), pictureUrl: z.string().url().nullish(), size: z.number(), creation: z.coerce.date(), owner: z.string(), restrict: z.boolean(), announce: z.boolean() }); var ParticipantResponseSchema = z.object({ id: z.string(), admin: z.enum(["admin", "superadmin"]).nullish() }); var GroupWithParticipantsResponseSchema = GroupResponseSchema.extend({ participants: z.array(ParticipantResponseSchema) }); var GroupResponseSchemaTransform = (group) => ({ jid: GroupJid(group.id), name: group.subject, pictureUrl: group.pictureUrl || void 0, size: group.size, subject: { owner: Jid(group.subjectOwner), time: group.subjectTime }, owner: { jid: Jid(group.owner), phoneNumber: phoneNumberFromJid(group.owner) }, createdAt: group.creation, restrict: group.restrict, announce: group.announce }); var ParticipantResponseSchemaTransform = (participant) => ({ id: participant.id, role: participant.admin || "member" }); var GroupWithParticipantsResponseSchemaTransform = (group) => ({ ...GroupResponseSchemaTransform(group), participants: group.participants.map(ParticipantResponseSchemaTransform) }); // src/modules/groups/schemas/find-all.ts var FindAllGroupsResponseSchema = z2.array(GroupResponseSchema).transform( (groups) => groups.map((group) => GroupResponseSchemaTransform(group)) ); var FindAllGroupsWithParticipantsResponseSchema = z2.array(GroupWithParticipantsResponseSchema).transform( (groups) => groups.map((group) => GroupWithParticipantsResponseSchemaTransform(group)) ); export { FindAllGroupsResponseSchema, FindAllGroupsWithParticipantsResponseSchema, FindAllGroupsResponseSchema as ResponseSchema, FindAllGroupsWithParticipantsResponseSchema as ResponseWithParticipantsSchema }; //# sourceMappingURL=find-all.mjs.map