Skip to content

Commit d491db4

Browse files
committed
allow to read integer
1 parent 0980c50 commit d491db4

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

it/integration_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,11 @@ func TestMigrator__integration(t *testing.T) {
8989
for i := range data {
9090
m := make(map[string]interface{})
9191

92-
switch data[i].value.(type) {
92+
switch d := data[i].value.(type) {
9393
case int:
94-
m[data[i].key] = data[i].value.(int)
94+
m[data[i].key] = d
9595
case string:
96-
m[data[i].key] = data[i].value.(string)
96+
m[data[i].key] = d
9797
default:
9898
t.Fatal("Error: unsupported data type")
9999
}

vault/client.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ func (v *Vault) Read(path string) map[string]interface{} {
8080
for k, v := range s.Data {
8181
switch t := v.(type) {
8282
case json.Number:
83-
if n, err := v.(json.Number).Int64(); err == nil {
83+
if n, err := t.Int64(); err == nil {
8484
out[k] = n
85-
} else if f, err := v.(json.Number).Float64(); err == nil {
85+
} else if f, err := t.Float64(); err == nil {
8686
out[k] = f
8787
} else {
8888
out[k] = v
@@ -92,8 +92,19 @@ func (v *Vault) Read(path string) map[string]interface{} {
9292
case map[string]interface{}:
9393
if k == "data" {
9494
for x, y := range t {
95-
if z, ok := y.(string); ok {
96-
out[x] = base64.StdEncoding.EncodeToString([]byte(z))
95+
switch t := y.(type) {
96+
case json.Number:
97+
if n, err := t.Int64(); err == nil {
98+
out[k] = n
99+
} else if f, err := t.Float64(); err == nil {
100+
out[k] = f
101+
} else {
102+
out[k] = y
103+
}
104+
case string:
105+
out[x] = base64.StdEncoding.EncodeToString([]byte(t))
106+
default:
107+
fmt.Printf("error reading value at %s, key=%s, type=%T\n", path, k, v)
97108
}
98109
}
99110
}

0 commit comments

Comments
 (0)