Files
formbricks-formbricks/apps/web/lib/api/clientPerson.ts
Zorig daf030b183 Add option to connect a Linksurvey with a userId (#430)
* feat: identify users in link surveys #384

* fix: identify users in link surveys formbricks#384 PR feedback

* relocate endpoint, add check for preview=true

---------

Co-authored-by: Matthias Nannt <mail@matthiasnannt.com>
2023-06-27 10:01:47 +02:00

72 lines
1.4 KiB
TypeScript

import { prisma } from "@formbricks/database";
import type { Person } from "@formbricks/types/js";
const select = {
id: true,
environmentId: true,
attributes: {
select: {
id: true,
value: true,
attributeClass: {
select: {
id: true,
name: true,
},
},
},
},
};
export const createPerson = async (environmentId: string): Promise<Person> => {
return await prisma.person.create({
data: {
environment: {
connect: {
id: environmentId,
},
},
},
select,
});
};
export const createPersonWithUser = async (environmentId: string, userId: string): Promise<Person> => {
const userIdAttributeClass = await prisma.attributeClass.findFirst({
where: {
environmentId,
name: "userId",
},
select: {
id: true,
},
});
if (!userIdAttributeClass) {
throw new Error("Attribute class not found for the given environmentId");
}
return await prisma.person.create({
data: {
environment: {
connect: {
id: environmentId,
},
},
attributes: {
create: [
{
attributeClass: {
connect: {
id: userIdAttributeClass.id,
},
},
value: userId,
},
],
},
},
select,
});
};