Files
karma/internal/filters/autocomplete.go
2025-10-30 12:59:44 +00:00

34 lines
1013 B
Go

package filters
import (
"github.com/prymitive/karma/internal/models"
)
type autocompleteFactory func(name string, operators []string, alerts []models.Alert) []models.Autocomplete
func makeAC(value string, tokens []string) models.Autocomplete {
uTokens := make([]models.UniqueString, 0, len(tokens))
for _, token := range tokens {
uTokens = append(uTokens, models.NewUniqueString(token))
}
acHint := models.Autocomplete{
Value: models.NewUniqueString(value),
Tokens: uTokens,
}
acHint.Tokens = append(acHint.Tokens, models.NewUniqueString(value))
return acHint
}
// BuildAutocomplete takes an alert object and generates list of autocomplete
// strings for it
func BuildAutocomplete(alerts []models.Alert) []models.Autocomplete {
acHints := []models.Autocomplete{}
for _, filterConfig := range AllFilters {
if filterConfig.Autocomplete != nil {
acHints = append(acHints, filterConfig.Autocomplete(filterConfig.Label, filterConfig.SupportedOperators, alerts)...)
}
}
return acHints
}