This commit is contained in:
Albert Espín 2024-10-03 10:10:11 +02:00
parent ac9f224748
commit 14d16b73f3
2 changed files with 32 additions and 0 deletions

View File

@ -12,6 +12,7 @@ import (
cml04eventer "git.espin.casa/albert/cml04-eventer"
"git.espin.casa/albert/cml04-falcon-system/internal/publisher"
"git.espin.casa/albert/cml04-falcon-system/internal/storage"
"git.espin.casa/albert/cml04-falcon-system/internal/types"
"git.espin.casa/albert/logger"
"github.com/nats-io/nats.go"
"github.com/spf13/cobra"
@ -120,6 +121,31 @@ func ProcessNewBarcodeMessage(ctx context.Context, msg *nats.Msg, storage storag
}
func ProcessNewBundleMessage(ctx context.Context, msg *nats.Msg, storage storage.Storager, log logger.LoggerAdapter) error {
// event holder
event := &cml04eventer.Event{}
// create new buffer based on message data
buff := bytes.NewBuffer(msg.Data)
// decode message
if err := json.NewDecoder(buff).Decode(event); err != nil {
return err
}
// info banner
log.Info("received event bus message", logger.LogFields{
"event_id": event.EventID,
"event_topic": event.EventTopic,
})
// bundle holder
bundle := &types.BundleData{}
// create new buffer based on message event data
buff = bytes.NewBuffer(event.EventData)
// decode message
if err := json.NewDecoder(buff).Decode(bundle); err != nil {
return err
}
// store bundle
if err := storage.StoreBundle(ctx, bundle); err != nil {
return err
}
return nil
}

View File

@ -17,6 +17,7 @@ type Storager interface {
StoreBeamCutPattern(ctx context.Context, in *types.BeamCutPattern) error
StoreLayerCutPattern(ctx context.Context, in *types.LayerCutPattern) error
StoreBeamGroup(ctx context.Context, in *types.BeamGroup) error
StoreBundle(ctx context.Context, in *types.BundleData) error
ConfirmBundle(ctx context.Context, barcode string) error
}
@ -33,6 +34,11 @@ type DBConfig struct {
Name string
}
// StoreBundle implements Storager.
func (s *storage) StoreBundle(ctx context.Context, in *types.BundleData) error {
return s.db.Save(in).Error
}
// StoreBeamGroup implements Storager.
func (s *storage) StoreBeamGroup(ctx context.Context, in *types.BeamGroup) error {
return s.db.Save(in).Error