diff --git a/internal/apiquery/encoder.go b/internal/apiquery/encoder.go index 0d09dee..338140c 100644 --- a/internal/apiquery/encoder.go +++ b/internal/apiquery/encoder.go @@ -135,13 +135,16 @@ func (e *encoder) encodePrimitive(key string, value reflect.Value) ([]Pair, erro } return []Pair{{key, "false"}}, nil - case reflect.Int, reflect.Int16, reflect.Int32, reflect.Int64: + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return []Pair{{key, strconv.FormatInt(value.Int(), 10)}}, nil - case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64: + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: return []Pair{{key, strconv.FormatUint(value.Uint(), 10)}}, nil - case reflect.Float32, reflect.Float64: + case reflect.Float32: + return []Pair{{key, strconv.FormatFloat(value.Float(), 'f', -1, 32)}}, nil + + case reflect.Float64: return []Pair{{key, strconv.FormatFloat(value.Float(), 'f', -1, 64)}}, nil default: diff --git a/internal/apiquery/query_test.go b/internal/apiquery/query_test.go index 3791ec9..2acc28b 100644 --- a/internal/apiquery/query_test.go +++ b/internal/apiquery/query_test.go @@ -25,10 +25,22 @@ func TestEncode(t *testing.T) { val: 42, enc: "query=42", }, + "int8": { + val: int8(-8), + enc: "query=-8", + }, + "uint8": { + val: uint8(8), + enc: "query=8", + }, "float": { val: 3.14, enc: "query=3.14", }, + "float32": { + val: float32(0.1), + enc: "query=0.1", + }, "bool": { val: true, enc: "query=true",