refactor(api): move autocomplete code to filters

This commit is contained in:
Łukasz Mierzwa
2018-10-08 23:15:28 +01:00
parent 66d9bba680
commit ade996a6ec
4 changed files with 23 additions and 28 deletions
+2 -1
View File
@@ -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
}
+18
View File
@@ -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)
}
-24
View File
@@ -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
}