// NewHttpGrpcHandler - Will return back new HTTP GRPC handler func NewHttpGrpcHandler(serv services.Servicer, logger *logging.Entry, handler func(context.Context, *runtime.ServeMux, *grpc.ClientConn) error) (*HttpGrpcHandler, error) { grpcAddr, ok := serv.GetOptions().Get("grpc-addr") if !ok { return nil, errors.New("In order to register new grpc http handler `grpc-addr` must be set.") } certFile, ok := serv.GetOptions().Get("grpc-tls-cert") if !ok { return nil, errors.New("In order to register new grpc http handler `grpc-tls-cert` must be set.") } certDomain, ok := serv.GetOptions().Get("grpc-tls-domain") if !ok { return nil, errors.New("In order to register new grpc http handler `grpc-tls-domain` must be set.") } httpgrpc := &HttpGrpcHandler{ ctx: context.Background(), ServeMux: runtime.NewServeMux(), Servicer: serv, Entry: logger, GrpcAddr: grpcAddr, CertFile: certFile, CertDomain: certDomain, } // Will register provider handler (protocol buffer client) and start grpc.Dial if err := httpgrpc.RegisterHandlerTLS(handler); err != nil { return nil, err } return httpgrpc, nil }