@solufy/evolution-sdk
Version:
Unofficial SDK for the Evolution Whatsapp API v2
76 lines (71 loc) • 2.37 kB
JavaScript
// 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