Skip to content

Commit 182c49b

Browse files
committed
minor revise params
1 parent ced5c87 commit 182c49b

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

types/resource.go

+25-16
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,12 @@ func (r RawParams) Float64(key string) float64 {
2727

2828
// Int64 .
2929
func (r RawParams) Int64(key string) int64 {
30-
if !r.IsSet(key) {
31-
return int64(0)
32-
}
33-
var str string
34-
if f, ok := r[key].(float64); ok {
35-
str = fmt.Sprintf("%.0f", f)
36-
} else {
37-
str = fmt.Sprintf("%+v", r[key])
38-
}
39-
res, _ := strconv.ParseInt(str, 10, 64)
40-
return res
30+
return intHelper[int64](r, key)
31+
}
32+
33+
// Int .
34+
func (r RawParams) Int(key string) int {
35+
return intHelper[int](r, key)
4136
}
4237

4338
// String .
@@ -107,17 +102,31 @@ func sliceHelper[T any](r RawParams, key string) []T {
107102
}
108103
var res []T
109104
if s, ok := r[key].([]interface{}); ok {
110-
res = make([]T, len(s))
111-
for i, v := range s {
105+
res = []T{}
106+
for _, v := range s {
112107
if r, ok := v.(T); ok {
113-
res[i] = r
114-
} else {
115-
return nil
108+
res = append(res, r)
109+
// } else {
110+
// return nil // TODO why continue?
116111
}
117112
}
118113
}
119114
return res
120115
}
121116

117+
func intHelper[T int | int64](r RawParams, key string) T {
118+
if !r.IsSet(key) {
119+
return T(0)
120+
}
121+
var str string
122+
if f, ok := r[key].(float64); ok {
123+
str = fmt.Sprintf("%.0f", f)
124+
} else {
125+
str = fmt.Sprintf("%+v", r[key])
126+
}
127+
res, _ := strconv.ParseInt(str, 10, 64)
128+
return T(res)
129+
}
130+
122131
// Resources all cosmos use this
123132
type Resources map[string]*RawParams

types/resource_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestRawParams(t *testing.T) {
2020
assert.Equal(t, r.String("cde"), "")
2121
assert.Len(t, r.StringSlice("bef"), 1)
2222
assert.Nil(t, r.OneOfStringSlice("efg"))
23-
assert.Len(t, *r.RawParams("fgd"), 0)
23+
assert.Nil(t, r.RawParams("fgd"))
2424

2525
r = RawParams{
2626
"int64": 1,

0 commit comments

Comments
 (0)