File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -330,6 +330,34 @@ func (builder *Builder) ForkJoin(
330330 return builder .JoinStep (joinName , waitFor , joinStrategy )
331331}
332332
333+ func (builder * Builder ) SavePoint (name string ) * Builder {
334+ if builder .err != nil {
335+ return builder
336+ }
337+
338+ if name == "" {
339+ builder .err = errors .New ("SavePoint called with no name" )
340+
341+ return builder
342+ }
343+
344+ step := & StepDefinition {
345+ Name : name ,
346+ Type : StepTypeSavePoint ,
347+ Metadata : make (map [string ]string ),
348+ }
349+
350+ builder .steps [name ] = step
351+
352+ if builder .currentStep != "" && builder .currentStep != name {
353+ builder .steps [builder .currentStep ].Next = append (builder .steps [builder .currentStep ].Next , name )
354+ }
355+
356+ builder .currentStep = name
357+
358+ return builder
359+ }
360+
333361func (builder * Builder ) Build () (* WorkflowDefinition , error ) {
334362 if builder .err != nil {
335363 return nil , builder .err
Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ const (
3333 StepTypeCondition StepType = "condition"
3434 StepTypeFork StepType = "fork"
3535 StepTypeJoin StepType = "join"
36+ StepTypeSavePoint StepType = "save_point"
3637)
3738
3839type JoinStrategy string
You can’t perform that action at this time.
0 commit comments