Skip to content

Commit 427ea9f

Browse files
committedJul 15, 2024
fix(api): import workflow > default environment should not be added when importing workflow
1 parent 6a558d6 commit 427ea9f

File tree

1 file changed

+32
-9
lines changed

1 file changed

+32
-9
lines changed
 

‎api/src/db.ts

+32-9
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,19 @@ export async function getWorkflow(id: workflow['id']): Promise<WorkflowData> {
6060
}
6161
}
6262

63-
export async function createWorkflow(workflow: workflow) {
63+
export async function createWorkflow(workflow: workflow, skipEnvironmentCreation = false) {
6464
const environmentId = nanoid()
65-
workflow.currentEnvironmentId = environmentId
65+
66+
if (!skipEnvironmentCreation) {
67+
workflow.currentEnvironmentId = environmentId
68+
}
69+
6670
await db.insert(workflows).values(workflow)
71+
72+
if (skipEnvironmentCreation) {
73+
return
74+
}
75+
6776
await db.insert(environments).values({
6877
id: environmentId,
6978
name: 'Default',
@@ -164,19 +173,33 @@ export async function importWorkflow(workflowDataString: string) : Promise<workf
164173
const workflowData: WorkflowData = JSON.parse(workflowDataString)
165174

166175
const newWorkflowId = nanoid()
167-
const newWorkflow = {
168-
...workflowData.workflow,
169-
id: newWorkflowId,
170-
currentEnvironmentId: null
171-
}
172-
await createWorkflow(newWorkflow)
176+
177+
const newEnvironments = []
178+
179+
const enviromentIdMap = new Map<string, string>()
173180

174181
for (const environment of workflowData.environments) {
182+
const newEnvironmentId = nanoid()
183+
184+
enviromentIdMap.set(environment.id, newEnvironmentId)
185+
175186
const newEnvironment = {
176187
...environment,
177-
id: nanoid(),
188+
id: newEnvironmentId,
178189
workflowId: newWorkflowId
179190
}
191+
192+
newEnvironments.push(newEnvironment)
193+
}
194+
195+
const newWorkflow = {
196+
...workflowData.workflow,
197+
id: newWorkflowId,
198+
currentEnvironmentId: workflowData.workflow.currentEnvironmentId ? enviromentIdMap.get(workflowData.workflow.currentEnvironmentId) : null
199+
}
200+
await createWorkflow(newWorkflow, true)
201+
202+
for (const newEnvironment of newEnvironments) {
180203
await createEnvironment(newEnvironment)
181204
}
182205

0 commit comments

Comments
 (0)