62 lines
1.3 KiB
TypeScript
62 lines
1.3 KiB
TypeScript
|
import { v4 as uuidv4 } from "uuid";
|
||
|
|
||
|
import { prisma } from "@calcom/prisma";
|
||
|
|
||
|
type Route = {
|
||
|
id: string;
|
||
|
action: {
|
||
|
type: string;
|
||
|
value: string;
|
||
|
};
|
||
|
isFallback: boolean;
|
||
|
queryValue: {
|
||
|
id: string;
|
||
|
type: string;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
export const createRoutingFormsFixture = () => {
|
||
|
return {
|
||
|
async create({
|
||
|
userId,
|
||
|
teamId,
|
||
|
name,
|
||
|
fields,
|
||
|
routes = [],
|
||
|
}: {
|
||
|
name: string;
|
||
|
userId: number;
|
||
|
teamId: number | null;
|
||
|
routes?: Route[];
|
||
|
fields: {
|
||
|
type: string;
|
||
|
label: string;
|
||
|
identifier?: string;
|
||
|
required: boolean;
|
||
|
}[];
|
||
|
}) {
|
||
|
return await prisma.app_RoutingForms_Form.create({
|
||
|
data: {
|
||
|
name,
|
||
|
userId,
|
||
|
teamId,
|
||
|
routes: [
|
||
|
...routes,
|
||
|
// Add a fallback route always, this is taken care of tRPC route normally but do it manually while running the query directly.
|
||
|
{
|
||
|
id: "898899aa-4567-489a-bcde-f1823f708646",
|
||
|
action: { type: "customPageMessage", value: "Fallback Message" },
|
||
|
isFallback: true,
|
||
|
queryValue: { id: "898899aa-4567-489a-bcde-f1823f708646", type: "group" },
|
||
|
},
|
||
|
],
|
||
|
fields: fields.map((f) => ({
|
||
|
id: uuidv4(),
|
||
|
...f,
|
||
|
})),
|
||
|
},
|
||
|
});
|
||
|
},
|
||
|
};
|
||
|
};
|