Skip to content

Commit 957b689

Browse files
committed
SavePoint.
1 parent d3e7afe commit 957b689

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

builder.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
333361
func (builder *Builder) Build() (*WorkflowDefinition, error) {
334362
if builder.err != nil {
335363
return nil, builder.err

models.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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

3839
type JoinStrategy string

0 commit comments

Comments
 (0)