github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/query_string_builder.go (about) 1 package util 2 3 import ( 4 "net/url" 5 "strconv" 6 ) 7 8 type QueryStringBuilder struct { 9 values url.Values 10 } 11 12 func NewQueryStringBuilder() *QueryStringBuilder { 13 return &QueryStringBuilder{ 14 values: url.Values{}, 15 } 16 } 17 18 func (b *QueryStringBuilder) SetString(name, value string) { 19 b.values.Set(name, value) 20 } 21 22 func (b *QueryStringBuilder) SetStringArray(name string, values []string) { 23 for _, v := range values { 24 b.values.Add(name, v) 25 } 26 } 27 28 func (b *QueryStringBuilder) SetInt(name string, value int64) { 29 b.SetString(name, strconv.FormatInt(value, 10)) 30 } 31 32 func (b *QueryStringBuilder) SetInt32(name string, value int) { 33 b.SetString(name, strconv.Itoa(value)) 34 } 35 36 func (b *QueryStringBuilder) SetFloat(name string, value float64) { 37 b.SetString(name, strconv.FormatFloat(value, 'f', -1, 64)) 38 } 39 40 func (b *QueryStringBuilder) SetFloat32(name string, value float32) { 41 b.SetString(name, strconv.FormatFloat(float64(value), 'f', -1, 32)) 42 } 43 44 // Encode returns the URL-encoded query string based on key-value 45 // parameters added to the builder calling Set functions. 46 func (b *QueryStringBuilder) Encode() string { 47 return b.values.Encode() 48 }