-
Notifications
You must be signed in to change notification settings - Fork 6
/
step.go
41 lines (37 loc) · 1.14 KB
/
step.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package response
import (
"github.com/ErdemOzgen/blackdagger/internal/dag"
"github.com/ErdemOzgen/blackdagger/service/frontend/models"
"github.com/samber/lo"
)
func ToStepObject(step *dag.Step) *models.StepObject {
return &models.StepObject{
Args: step.Args,
CmdWithArgs: lo.ToPtr(step.CmdWithArgs),
Command: lo.ToPtr(step.Command),
Depends: step.Depends,
Description: lo.ToPtr(step.Description),
Dir: lo.ToPtr(step.Dir),
MailOnError: lo.ToPtr(step.MailOnError),
Name: lo.ToPtr(step.Name),
Output: lo.ToPtr(step.Output),
Preconditions: lo.Map(step.Preconditions, func(item *dag.Condition, _ int) *models.Condition {
return ToCondition(item)
}),
RepeatPolicy: ToRepeatPolicy(step.RepeatPolicy),
Script: lo.ToPtr(step.Script),
Variables: step.Variables,
}
}
func ToRepeatPolicy(repeatPolicy dag.RepeatPolicy) *models.RepeatPolicy {
return &models.RepeatPolicy{
Repeat: repeatPolicy.Repeat,
Interval: int64(repeatPolicy.Interval),
}
}
func ToCondition(cond *dag.Condition) *models.Condition {
return &models.Condition{
Condition: cond.Condition,
Expected: cond.Expected,
}
}