diff --git a/golang/client.go b/golang/client.go index ed7230d..0475149 100644 --- a/golang/client.go +++ b/golang/client.go @@ -57,6 +57,7 @@ func Connect(options *ClientOptions) (Client, error) { return nil, errors.New("endpoint is required for client") } opts := []grpc.DialOption{ + grpc.WithUnaryInterceptor(UnaryClientInterceptor()), grpc.WithTransportCredentials(insecure.NewCredentials()), } if options.Token != "" { diff --git a/golang/interceptor.go b/golang/interceptor.go new file mode 100644 index 0000000..4feedea --- /dev/null +++ b/golang/interceptor.go @@ -0,0 +1,16 @@ +package vanus + +import ( + "context" + + "google.golang.org/grpc" + + "github.com/vanus-labs/vanus/pkg/errors" +) + +func UnaryClientInterceptor() grpc.UnaryClientInterceptor { + return func(ctx context.Context, method string, req interface{}, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { + err := invoker(ctx, method, req, reply, cc, opts...) + return errors.UnwrapOrUnknown(err) + } +}