add ability to send headers and cookies

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2021-10-25 19:59:37 +03:00
parent 4fe11b430e
commit fd5479f6e7
11 changed files with 192 additions and 83 deletions

26
util.go
View File

@@ -10,10 +10,10 @@ import (
"strings"
"sync"
"github.com/unistack-org/micro/v3/client"
"github.com/unistack-org/micro/v3/errors"
"github.com/unistack-org/micro/v3/logger"
rutil "github.com/unistack-org/micro/v3/util/reflect"
"go.unistack.org/micro/v3/client"
"go.unistack.org/micro/v3/errors"
"go.unistack.org/micro/v3/logger"
rutil "go.unistack.org/micro/v3/util/reflect"
)
var (
@@ -38,7 +38,7 @@ func GetError(err error) interface{} {
return err
}
func newPathRequest(path string, method string, body string, msg interface{}, tags []string) (string, interface{}, error) {
func newPathRequest(path string, method string, body string, msg interface{}, tags []string, parameters map[string]map[string]string) (string, interface{}, error) {
// parse via https://github.com/googleapis/googleapis/blob/master/google/api/http.proto definition
tpl, err := newTemplate(path)
if err != nil {
@@ -117,10 +117,18 @@ func newPathRequest(path string, method string, body string, msg interface{}, ta
}
}
if t.name == "" {
cname := t.name
if cname == "" {
cname = fld.Name
// fallback to lowercase
t.name = strings.ToLower(fld.Name)
}
if _, ok := parameters["header"][cname]; ok {
continue
}
if _, ok := parameters["cookie"][cname]; ok {
continue
}
if !val.IsValid() || val.IsZero() {
continue
@@ -200,6 +208,12 @@ 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
}