cml04-falcon-system/handset/eventer/eventer.go
2024-10-01 20:28:58 +02:00

39 lines
670 B
Go

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{},
}
}