Files
formbricks/apps/web/modules/ee/contacts/lib/utils.ts
Anshuman Pandey 56d8c3f50f feat: contacts revamp (#3399)
Co-authored-by: Matthias Nannt <mail@matthiasnannt.com>
2024-12-03 12:38:35 +00:00

37 lines
1.2 KiB
TypeScript

import { TContactWithAttributes, TTransformPersonInput } from "@/modules/ee/contacts/types/contact";
import { Prisma } from "@prisma/client";
import { TContactAttributes } from "@formbricks/types/contact-attribute";
export const getContactIdentifier = (contactAttributes: TContactAttributes | null): string => {
return contactAttributes?.email ?? contactAttributes?.userId ?? "";
};
export const convertPrismaContactAttributes = (
prismaAttributes: Prisma.ContactAttributeGetPayload<{
select: { value: true; attributeKey: { select: { key: true; name: true } } };
}>[]
): TContactAttributes => {
return prismaAttributes.reduce((acc, attr) => {
acc[attr.attributeKey.key] = {
name: attr.attributeKey.name,
value: attr.value,
};
return acc;
}, {});
};
export const transformPrismaContact = (person: TTransformPersonInput): TContactWithAttributes => {
const attributes = person.attributes.reduce((acc, attr) => {
acc[attr.attributeKey.key] = attr.value;
return acc;
}, {});
return {
id: person.id,
attributes,
environmentId: person.environmentId,
createdAt: new Date(person.createdAt),
updatedAt: new Date(person.updatedAt),
};
};