service backend
This commit is contained in:
26
api/pkg/messaging/internal/producer/producer.go
Normal file
26
api/pkg/messaging/internal/producer/producer.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package messagingimp
|
||||
|
||||
import (
|
||||
mb "github.com/tech/sendico/pkg/messaging/broker"
|
||||
me "github.com/tech/sendico/pkg/messaging/envelope"
|
||||
"github.com/tech/sendico/pkg/mlogger"
|
||||
"github.com/tech/sendico/pkg/mutil/mzap"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type ChannelProducer struct {
|
||||
logger mlogger.Logger
|
||||
broker mb.Broker
|
||||
}
|
||||
|
||||
func (p *ChannelProducer) SendMessage(envelope me.Envelope) error {
|
||||
// TODO: won't work with Kafka, need to serialize/deserialize
|
||||
if err := p.broker.Publish(envelope); err != nil {
|
||||
p.logger.Warn("Failed to publish message", zap.Error(err), mzap.Envelope(envelope))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewProducer(logger mlogger.Logger, broker mb.Broker) *ChannelProducer {
|
||||
return &ChannelProducer{logger: logger.Named("producer"), broker: broker}
|
||||
}
|
||||
Reference in New Issue
Block a user