mirror of
https://github.com/prymitive/karma
synced 2026-08-23 11:56:20 +00:00
refactor(api): move autocomplete code to filters
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/prymitive/karma/internal/config"
|
||||
"github.com/prymitive/karma/internal/filters"
|
||||
"github.com/prymitive/karma/internal/mapper"
|
||||
"github.com/prymitive/karma/internal/models"
|
||||
"github.com/prymitive/karma/internal/transform"
|
||||
@@ -270,7 +271,7 @@ func (am *Alertmanager) pullAlerts(version string) error {
|
||||
alerts = append(alerts, alert)
|
||||
}
|
||||
|
||||
for _, hint := range transform.BuildAutocomplete(alerts) {
|
||||
for _, hint := range filters.BuildAutocomplete(alerts) {
|
||||
autocompleteMap[hint.Value] = hint
|
||||
}
|
||||
|
||||
|
||||
@@ -14,3 +14,21 @@ func makeAC(value string, tokens []string) models.Autocomplete {
|
||||
acHint.Tokens = append(acHint.Tokens, value)
|
||||
return acHint
|
||||
}
|
||||
|
||||
// BuildAutocomplete takes an alert object and generates list of autocomplete
|
||||
// strings for it
|
||||
func BuildAutocomplete(alerts []models.Alert) []models.Autocomplete {
|
||||
acHints := map[string]models.Autocomplete{}
|
||||
for _, filterConfig := range AllFilters {
|
||||
if filterConfig.Autocomplete != nil {
|
||||
for _, hint := range filterConfig.Autocomplete(filterConfig.Label, filterConfig.SupportedOperators, alerts) {
|
||||
acHints[hint.Value] = hint
|
||||
}
|
||||
}
|
||||
}
|
||||
acHintsSlice := []models.Autocomplete{}
|
||||
for _, hint := range acHints {
|
||||
acHintsSlice = append(acHintsSlice, hint)
|
||||
}
|
||||
return acHintsSlice
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package transform_test
|
||||
package filters_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
"github.com/prymitive/karma/internal/filters"
|
||||
"github.com/prymitive/karma/internal/models"
|
||||
"github.com/prymitive/karma/internal/transform"
|
||||
|
||||
"github.com/pmezard/go-difflib/difflib"
|
||||
)
|
||||
@@ -54,7 +54,7 @@ var acTests = []acTest{
|
||||
func TestBuildAutocomplete(t *testing.T) {
|
||||
for _, acTest := range acTests {
|
||||
result := []string{}
|
||||
for _, hint := range transform.BuildAutocomplete(acTest.Alerts) {
|
||||
for _, hint := range filters.BuildAutocomplete(acTest.Alerts) {
|
||||
result = append(result, hint.Value)
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
package transform
|
||||
|
||||
import (
|
||||
"github.com/prymitive/karma/internal/filters"
|
||||
"github.com/prymitive/karma/internal/models"
|
||||
)
|
||||
|
||||
// BuildAutocomplete takes an alert object and generates list of autocomplete
|
||||
// strings for it
|
||||
func BuildAutocomplete(alerts []models.Alert) []models.Autocomplete {
|
||||
acHints := map[string]models.Autocomplete{}
|
||||
for _, filterConfig := range filters.AllFilters {
|
||||
if filterConfig.Autocomplete != nil {
|
||||
for _, hint := range filterConfig.Autocomplete(filterConfig.Label, filterConfig.SupportedOperators, alerts) {
|
||||
acHints[hint.Value] = hint
|
||||
}
|
||||
}
|
||||
}
|
||||
acHintsSlice := []models.Autocomplete{}
|
||||
for _, hint := range acHints {
|
||||
acHintsSlice = append(acHintsSlice, hint)
|
||||
}
|
||||
return acHintsSlice
|
||||
}
|
||||
Reference in New Issue
Block a user