package messaging

import (
	"github.com/tech/sendico/pkg/merrors"
	mb "github.com/tech/sendico/pkg/messaging/broker"
	mbip "github.com/tech/sendico/pkg/messaging/inprocess"
	mbn "github.com/tech/sendico/pkg/messaging/natsb"
	"github.com/tech/sendico/pkg/mlogger"
)

func CreateMessagingBroker(logger mlogger.Logger, config *Config) (mb.Broker, error) {
	if config.Driver == BBInProcess {
		return mbip.NewInProcessBroker(logger, config.Settings)
	}
	if config.Driver == BBNats {
		return mbn.NewNATSBroker(logger, config.Settings)
	}
	return nil, merrors.InvalidArgument("Unknown messaging broker type: " + string(config.Driver))
}
