package eventer import ( "bytes" "context" "encoding/json" cml04eventer "git.espin.casa/albert/cml04-eventer" "github.com/nats-io/nats.go" ) type Eventer interface { BarCode(ctx context.Context, barcode string) error } type eventer struct { nc *nats.Conn } func (e *eventer) BarCode(ctx context.Context, barcode string) error { // create event message evt := cml04eventer.NewEvent("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() (Eventer, error) { return &eventer{ nc: &nats.Conn{}, } }