UNPKG

@solufy/evolution-sdk

Version:

Unofficial SDK for the Evolution Whatsapp API v2

83 lines (78 loc) 2.48 kB
// src/modules/groups/schemas/find-by-invite-code.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-by-invite-code.ts var FindGroupByInviteCodeResponseSchema = GroupWithParticipantsResponseSchema.extend({ isCommunity: z2.boolean(), isCommunityAnnounce: z2.boolean(), joinApprovalMode: z2.boolean(), memberAddMode: z2.boolean() }).omit({ pictureUrl: true }).transform((group) => ({ ...GroupWithParticipantsResponseSchemaTransform({ ...group, pictureUrl: null }), isCommunity: group.isCommunity, isCommunityAnnounce: group.isCommunityAnnounce, joinApprovalMode: group.joinApprovalMode, memberAddMode: group.memberAddMode })); export { FindGroupByInviteCodeResponseSchema, FindGroupByInviteCodeResponseSchema as ResponseSchema }; //# sourceMappingURL=find-by-invite-code.mjs.map