cml04-falcon-system/handset/publisher/publisher.go

39 lines
683 B
Go
Raw Normal View History

2024-10-02 10:36:08 +02:00
package publisher
import (
"bytes"
"context"
"encoding/json"
cml04eventer "git.espin.casa/albert/cml04-eventer"
"github.com/nats-io/nats.go"
)
type Publisher interface {
Barcode(ctx context.Context, barcode string) error
}
type publisher struct {
nc *nats.Conn
}
func (e *publisher) Barcode(ctx context.Context, barcode string) error {
// create event message
evt := cml04eventer.NewEvent("falcon-handset", "barcode.new", nil, []byte(barcode))
buf := bytes.Buffer{}
if err := json.NewEncoder(&buf).Encode(evt); err != nil {
return err
}
return e.nc.Publish("barcode.new", buf.Bytes())
}
func New(nc *nats.Conn) Publisher {
return &publisher{
nc: nc,
}
}