micro/client/rpc_request.go

66 lines
1.1 KiB
Go
Raw Normal View History

2015-01-13 23:31:27 +00:00
package client
2019-01-10 11:39:39 +00:00
import (
"github.com/micro/go-micro/v2/codec"
2019-01-10 11:39:39 +00:00
)
2015-05-23 17:40:53 +01:00
type rpcRequest struct {
2015-05-23 11:53:40 +01:00
service string
2019-01-18 12:30:39 +00:00
method string
2019-01-10 21:25:31 +00:00
endpoint string
2015-05-23 11:53:40 +01:00
contentType string
2019-01-10 11:39:39 +00:00
codec codec.Codec
body interface{}
opts RequestOptions
2015-01-13 23:31:27 +00:00
}
2019-01-10 21:25:31 +00:00
func newRequest(service, endpoint string, request interface{}, contentType string, reqOpts ...RequestOption) Request {
var opts RequestOptions
2015-12-17 20:37:35 +00:00
for _, o := range reqOpts {
o(&opts)
}
2018-04-14 18:06:52 +01:00
// set the content-type specified
if len(opts.ContentType) > 0 {
contentType = opts.ContentType
}
2015-05-23 17:40:53 +01:00
return &rpcRequest{
2015-01-13 23:31:27 +00:00
service: service,
2019-01-18 12:30:39 +00:00
method: endpoint,
2019-01-10 21:25:31 +00:00
endpoint: endpoint,
2019-01-10 11:39:39 +00:00
body: request,
2015-01-13 23:31:27 +00:00
contentType: contentType,
2015-12-17 20:37:35 +00:00
opts: opts,
2015-01-13 23:31:27 +00:00
}
}
2015-05-23 17:40:53 +01:00
func (r *rpcRequest) ContentType() string {
2015-01-13 23:31:27 +00:00
return r.contentType
}
2015-05-23 17:40:53 +01:00
func (r *rpcRequest) Service() string {
2015-01-13 23:31:27 +00:00
return r.service
}
2019-01-18 10:12:57 +00:00
func (r *rpcRequest) Method() string {
return r.method
}
2019-01-10 21:25:31 +00:00
func (r *rpcRequest) Endpoint() string {
return r.endpoint
2015-01-13 23:31:27 +00:00
}
2019-01-10 11:39:39 +00:00
func (r *rpcRequest) Body() interface{} {
return r.body
}
func (r *rpcRequest) Codec() codec.Writer {
return r.codec
2015-01-13 23:31:27 +00:00
}
2015-12-17 20:37:35 +00:00
func (r *rpcRequest) Stream() bool {
return r.opts.Stream
2015-12-17 20:37:35 +00:00
}