Skip to content

Commit eb4f17f

Browse files
committed
feat: refactor setParameterValue method in Flow.service.ts to utilize FunctionDefinition for parameter handling
1 parent e3ae776 commit eb4f17f

1 file changed

Lines changed: 32 additions & 10 deletions

File tree

src/packages/ce/src/flow/services/Flow.service.ts

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {ReactiveArrayService, ReactiveArrayStore} from "@code0-tech/pictor";
22
import {
33
FlowInput,
44
FlowSetting,
5+
FunctionDefinition,
56
LiteralValue,
67
Maybe,
78
Mutation,
@@ -16,11 +17,10 @@ import {
1617
NodeFunction,
1718
NodeFunctionIdWrapper,
1819
NodeParameter,
19-
NodeParameterValueInput, ParameterDefinition,
20+
NodeParameterValueInput,
2021
Query,
2122
ReferencePathInput,
22-
ReferenceValue,
23-
Scalars
23+
ReferenceValue
2424
} from "@code0-tech/sagittarius-graphql-types";
2525
import {GraphqlClient} from "@core/util/graphql-client";
2626
import flowsQuery from "@edition/flow/services/queries/Flows.query.graphql";
@@ -317,21 +317,43 @@ export class FlowService extends ReactiveArrayService<FlowView, FlowDependencies
317317
await this.syncFlow(flowId)
318318
}
319319

320-
async setParameterValue(flowId: FlowView['id'], nodeId: NodeFunction['id'], parameterIndex: number, value?: LiteralValue | ReferenceValue | NodeFunction, parameterDefinitionId?: ParameterDefinition['id']): Promise<void> {
320+
async setParameterValue(flowId: FlowView['id'], nodeId: NodeFunction['id'], parameterIndex: number, value?: LiteralValue | ReferenceValue | NodeFunction, functionDefinition?: FunctionDefinition): Promise<void> {
321+
321322
const flow = this.getById(flowId)
322323
const index = this.values().findIndex(f => f.id === flowId)
323324
if (!flow) return
324325
const node = this.getNodeById(flowId, nodeId)
325326
if (!node) return
327+
328+
if (!node.parameters) {
329+
node.parameters = {
330+
nodes: []
331+
}
332+
}
333+
334+
if (!node.parameters.nodes) {
335+
node.parameters.nodes = []
336+
}
337+
338+
functionDefinition?.parameterDefinitions?.nodes?.forEach((pD, index) => {
339+
const nodeParameter = node.parameters?.nodes?.[index]
340+
if (!nodeParameter) {
341+
342+
node!.parameters!.nodes![parameterIndex] = {
343+
__typename: "NodeParameter",
344+
value: null,
345+
parameterDefinition: {
346+
id: pD?.id
347+
}
348+
}
349+
}
350+
})
351+
326352
const parameter = node.parameters?.nodes?.[parameterIndex]
327-
if (!parameter && parameterDefinitionId && node.parameters && node.parameters.nodes) {
328-
//TODO: needs a parameterDefinitionId
353+
if (!parameter && node.parameters && node.parameters.nodes) {
354+
329355
const localParameter: NodeParameter = {
330356
__typename: "NodeParameter",
331-
parameterDefinition: {
332-
__typename: "ParameterDefinition",
333-
id: parameterDefinitionId
334-
},
335357
value: null
336358
}
337359

0 commit comments

Comments
 (0)