package consumer

import (
	"github.com/Shopify/sarama"
	"github.com/juju/errors"
)

// Client is a group client
type Client struct {
	sarama.Client
	config Config
	own    bool
}

// NewClient creates a new client instance
func NewClient(addrs []string, config *Config) (*Client, error) {
	if config == nil {
		config = NewConfig()
	}

	if err := config.Validate(); err != nil {
		return nil, errors.Trace(err)
	}

	client, err := sarama.NewClient(addrs, &config.Config)
	if err != nil {
		return nil, errors.Trace(err)
	}

	return &Client{Client: client, config: *config}, nil
}
