mirror of
https://github.com/formbricks/formbricks.git
synced 2026-02-18 01:00:40 -06:00
37 lines
1.2 KiB
TypeScript
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),
|
|
};
|
|
};
|