Skip to content

Commit 2a0c75e

Browse files
Add more tie-breakers
1 parent e0560b8 commit 2a0c75e

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

internal/status/sortfilter.go

+20
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,41 @@ package status
33
import (
44
"context"
55

6+
"github.com/nais/api/internal/graph/model"
67
"github.com/nais/api/internal/workload"
78
"github.com/nais/api/internal/workload/application"
89
"github.com/nais/api/internal/workload/job"
10+
"k8s.io/utils/ptr"
911
)
1012

1113
func init() {
1214
application.SortFilter.RegisterConcurrentSort("STATUS", func(ctx context.Context, a *application.Application) int {
1315
return int(ForWorkload(ctx, a).State)
16+
}, application.SortFilterTieBreaker{
17+
Field: "NAME",
18+
Direction: ptr.To(model.OrderDirectionAsc),
19+
}, application.SortFilterTieBreaker{
20+
Field: "ENVIRONMENT",
21+
Direction: ptr.To(model.OrderDirectionAsc),
1422
})
1523

1624
job.SortFilter.RegisterConcurrentSort("STATUS", func(ctx context.Context, a *job.Job) int {
1725
return int(ForWorkload(ctx, a).State)
26+
}, job.SortFilterTieBreaker{
27+
Field: "NAME",
28+
Direction: ptr.To(model.OrderDirectionAsc),
29+
}, job.SortFilterTieBreaker{
30+
Field: "ENVIRONMENT",
31+
Direction: ptr.To(model.OrderDirectionAsc),
1832
})
1933

2034
workload.SortFilter.RegisterConcurrentSort("STATUS", func(ctx context.Context, a workload.Workload) int {
2135
return int(ForWorkload(ctx, a).State)
36+
}, workload.SortFilterTieBreaker{
37+
Field: "NAME",
38+
Direction: ptr.To(model.OrderDirectionAsc),
39+
}, workload.SortFilterTieBreaker{
40+
Field: "ENVIRONMENT",
41+
Direction: ptr.To(model.OrderDirectionAsc),
2242
})
2343
}

internal/vulnerability/sortfilter.go

+19-6
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ import (
44
"context"
55
"strings"
66

7+
"github.com/nais/api/internal/graph/model"
78
"github.com/nais/api/internal/graph/sortfilter"
89
"github.com/nais/api/internal/workload"
10+
"k8s.io/utils/ptr"
911
)
1012

1113
var SortFilterImageVulnerabilities = sortfilter.New[*ImageVulnerability, ImageVulnerabilityOrderField, struct{}]()
@@ -63,22 +65,33 @@ func workloadInit() {
6365
}
6466
}
6567

68+
tieBreakers := []workload.SortFilterTieBreaker{
69+
{
70+
Field: "NAME",
71+
Direction: ptr.To(model.OrderDirectionAsc),
72+
},
73+
{
74+
Field: "ENVIRONMENT",
75+
Direction: ptr.To(model.OrderDirectionAsc),
76+
},
77+
}
78+
6679
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_RISK_SCORE", summarySorter(func(sum *ImageVulnerabilitySummary) int {
6780
return sum.RiskScore
68-
}))
81+
}), tieBreakers...)
6982
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_SEVERITY_CRITICAL", summarySorter(func(sum *ImageVulnerabilitySummary) int {
7083
return sum.Critical
71-
}))
84+
}), tieBreakers...)
7285
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_SEVERITY_HIGH", summarySorter(func(sum *ImageVulnerabilitySummary) int {
7386
return sum.High
74-
}))
87+
}), tieBreakers...)
7588
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_SEVERITY_MEDIUM", summarySorter(func(sum *ImageVulnerabilitySummary) int {
7689
return sum.Medium
77-
}))
90+
}), tieBreakers...)
7891
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_SEVERITY_LOW", summarySorter(func(sum *ImageVulnerabilitySummary) int {
7992
return sum.Low
80-
}))
93+
}), tieBreakers...)
8194
workload.SortFilter.RegisterConcurrentSort("VULNERABILITY_SEVERITY_UNASSIGNED", summarySorter(func(sum *ImageVulnerabilitySummary) int {
8295
return sum.Unassigned
83-
}))
96+
}), tieBreakers...)
8497
}

0 commit comments

Comments
 (0)