1
0
Fork 0
test/internal/client/client.go

38 lines
970 B
Go
Raw Normal View History

2019-10-03 14:51:00 +00:00
package client
import (
"gitlab.com/toby3d/test/internal/model"
"golang.org/x/xerrors"
"google.golang.org/grpc"
)
// Client представляет собой простой gRPC клиент
type Client struct {
model.ShopCartClient
listener *grpc.ClientConn
}
// ErrClientNotInitialized описывает ошибку инициализации сервера
var ErrClientNotInitialized = xerrors.New("client is not initialized")
// NewClient создаёт новый клиент
func NewClient(addr string) (*Client, error) {
var c Client
var err error
if c.listener, err = grpc.Dial(addr, grpc.WithInsecure()); err != nil {
return nil, err
}
c.ShopCartClient = model.NewShopCartClient(c.listener)
return &c, nil
}
// Close закрывает все активные соединения с клиентом
func (c *Client) Close() error {
if c == nil || c.listener == nil {
return ErrClientNotInitialized
}
return c.listener.Close()
}