feat: options to clone the workflow

This commit is contained in:
BennyKok
2024-01-18 00:18:36 +08:00
parent 20635612bb
commit 56eb91d102
5 changed files with 144 additions and 27 deletions
+46
View File
@@ -0,0 +1,46 @@
import { db } from "@/db/db";
import type { WorkflowVersionType } from "@/db/schema";
import { workflowTable, workflowVersionTable } from "@/db/schema";
export async function createNewWorkflow({
workflow_name,
user_id,
org_id,
workflowData,
}: {
workflow_name: string;
user_id: string;
org_id?: string;
workflowData: Pick<
WorkflowVersionType,
"workflow" | "workflow_api" | "snapshot"
>;
}) {
// Create a new parent workflow
const workflow_parent = await db
.insert(workflowTable)
.values({
user_id,
name: workflow_name,
org_id: org_id,
})
.returning();
const workflow_id = workflow_parent[0].id;
// Create a new version
const data = await db
.insert(workflowVersionTable)
.values({
workflow_id: workflow_id,
version: 1,
...workflowData,
})
.returning();
const version = data[0].version;
return {
workflow_id,
version,
};
}