Compare commits

...

8 Commits

Author SHA1 Message Date
766cbd8ae0 Merge pull request #66 from unistack-org/wrappers
add additional wrappers support
2022-03-10 12:30:10 +03:00
847352a8d3 Merge branch 'master' into wrappers 2022-03-10 12:28:56 +03:00
147c2d756e add additional wrappers support
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2022-03-10 12:27:37 +03:00
f42994e5c0 update go version
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2022-03-07 13:45:05 +03:00
8231f4f7f6 Merge pull request #57 from unistack-org/master
merge master
2022-03-03 17:47:50 +03:00
b658f5091a Merge pull request #55 from unistack-org/master
merge master
2022-03-02 17:52:34 +03:00
6be01f2cb2 Merge branch 'master' into v3 2022-01-12 17:48:26 +03:00
381f3e051e Merge pull request #40 from unistack-org/master
merge master
2021-12-16 15:38:33 +03:00
4 changed files with 30 additions and 13 deletions

View File

@@ -12,7 +12,7 @@ jobs:
- name: setup
uses: actions/setup-go@v2
with:
go-version: 1.16
go-version: 1.17
- name: checkout
uses: actions/checkout@v3
- name: cache

View File

@@ -47,7 +47,7 @@ jobs:
- name: setup
uses: actions/setup-go@v2
with:
go-version: 1.16
go-version: 1.17
# Initializes the CodeQL tools for scanning.
- name: init
uses: github/codeql-action/init@v1

View File

@@ -12,7 +12,7 @@ jobs:
- name: setup
uses: actions/setup-go@v2
with:
go-version: 1.16
go-version: 1.17
- name: checkout
uses: actions/checkout@v3
- name: cache

37
util.go
View File

@@ -147,11 +147,11 @@ func newPathRequest(path string, method string, body string, msg interface{}, ta
switch val.Type().Kind() {
case reflect.Slice:
for idx := 0; idx < val.Len(); idx++ {
values.Add(t.name, fmt.Sprintf("%v", val.Index(idx).Interface()))
values.Add(t.name, getParam(val.Index(idx)))
}
fieldsmapskip[t.name] = struct{}{}
default:
fieldsmap[t.name] = fmt.Sprintf("%v", val.Interface())
fieldsmap[t.name] = getParam(val)
}
} else if (body == "*" || body == t.name) && method != http.MethodGet {
if tnmsg.Field(i).CanSet() {
@@ -160,10 +160,10 @@ func newPathRequest(path string, method string, body string, msg interface{}, ta
} else {
if val.Type().Kind() == reflect.Slice {
for idx := 0; idx < val.Len(); idx++ {
values.Add(t.name, fmt.Sprintf("%v", val.Index(idx).Interface()))
values.Add(t.name, getParam(val.Index(idx)))
}
} else {
values.Add(t.name, fmt.Sprintf("%v", val.Interface()))
values.Add(t.name, getParam(val))
}
}
}
@@ -216,12 +216,6 @@ func newPathRequest(path string, method string, body string, msg interface{}, ta
_, _ = b.WriteString(values.Encode())
}
/*
if err = rutil.ZeroFieldByPath(nmsg, k); err != nil {
return nil, errors.BadRequest("go.micro.client", err.Error())
}
*/
if rutil.IsZero(nmsg) {
return b.String(), nil, nil
}
@@ -324,3 +318,26 @@ type tag struct {
key string
name string
}
func getParam(val reflect.Value) string {
var v string
switch val.Kind() {
case reflect.Ptr:
switch reflect.Indirect(val).Type().String() {
case
"wrapperspb.BoolValue",
"wrapperspb.BytesValue",
"wrapperspb.DoubleValue",
"wrapperspb.FloatValue",
"wrapperspb.Int32Value", "wrapperspb.Int64Value",
"wrapperspb.StringValue",
"wrapperspb.UInt32Value", "wrapperspb.UInt64Value":
if eva := reflect.Indirect(val).FieldByName("Value"); eva.IsValid() {
v = getParam(eva)
}
}
default:
v = fmt.Sprintf("%v", val.Interface())
}
return v
}