From ade996a6ec8913067a80fd7e41aa966f1f252eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Mon, 8 Oct 2018 22:44:45 +0100 Subject: [PATCH] refactor(api): move autocomplete code to filters --- internal/alertmanager/models.go | 3 ++- internal/filters/autocomplete.go | 18 ++++++++++++++ .../autocomplete_test.go | 6 ++--- internal/transform/autocomplete.go | 24 ------------------- 4 files changed, 23 insertions(+), 28 deletions(-) rename internal/{transform => filters}/autocomplete_test.go (91%) delete mode 100644 internal/transform/autocomplete.go diff --git a/internal/alertmanager/models.go b/internal/alertmanager/models.go index ae1509251..21f5d8a1d 100644 --- a/internal/alertmanager/models.go +++ b/internal/alertmanager/models.go @@ -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 } diff --git a/internal/filters/autocomplete.go b/internal/filters/autocomplete.go index 2018d0a79..c4c2097aa 100644 --- a/internal/filters/autocomplete.go +++ b/internal/filters/autocomplete.go @@ -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 +} diff --git a/internal/transform/autocomplete_test.go b/internal/filters/autocomplete_test.go similarity index 91% rename from internal/transform/autocomplete_test.go rename to internal/filters/autocomplete_test.go index fa151a486..1bad262be 100644 --- a/internal/transform/autocomplete_test.go +++ b/internal/filters/autocomplete_test.go @@ -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) } diff --git a/internal/transform/autocomplete.go b/internal/transform/autocomplete.go deleted file mode 100644 index 472d24806..000000000 --- a/internal/transform/autocomplete.go +++ /dev/null @@ -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 -}