-
Notifications
You must be signed in to change notification settings - Fork 5
/
dag_list.go
54 lines (49 loc) · 1.37 KB
/
dag_list.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
42
43
44
45
46
47
48
49
50
51
52
53
54
package response
import (
"github.com/ErdemOzgen/blackdagger/internal/dag"
"github.com/ErdemOzgen/blackdagger/internal/persistence"
"github.com/ErdemOzgen/blackdagger/service/frontend/models"
"github.com/samber/lo"
)
func ToListDagResponse(
dagStatusList []*persistence.DAGStatus,
errs []string,
hasError bool,
) *models.ListDagsResponse {
return &models.ListDagsResponse{
DAGs: lo.Map(dagStatusList, func(item *persistence.DAGStatus, _ int) *models.DagListItem {
return ToDagListItem(item)
}),
Errors: errs,
HasError: lo.ToPtr(hasError),
}
}
func ToDagListItem(s *persistence.DAGStatus) *models.DagListItem {
return &models.DagListItem{
Dir: lo.ToPtr(s.Dir),
Error: lo.ToPtr(toErrorText(s.Error)),
ErrorT: s.ErrorT,
File: lo.ToPtr(s.File),
Status: ToDagStatus(s.Status),
Suspended: lo.ToPtr(s.Suspended),
DAG: ToDAG(s.DAG),
}
}
func ToDAG(d *dag.DAG) *models.Dag {
return &models.Dag{
Name: lo.ToPtr(d.Name),
Group: lo.ToPtr(d.Group),
Description: lo.ToPtr(d.Description),
Params: d.Params,
DefaultParams: lo.ToPtr(d.DefaultParams),
Tags: d.Tags,
Schedule: lo.Map(d.Schedule, func(item *dag.Schedule, _ int) *models.Schedule {
return ToSchedule(item)
}),
}
}
func ToSchedule(s *dag.Schedule) *models.Schedule {
return &models.Schedule{
Expression: lo.ToPtr(s.Expression),
}
}