This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
core-old/internal/msg/publisher_ennoblement.go

40 lines
1.1 KiB
Go
Raw Normal View History

package msg
import (
"context"
"fmt"
"gitea.dwysokinski.me/twhelp/core/internal/domain"
"gitea.dwysokinski.me/twhelp/core/internal/msg/internal/model"
"github.com/ThreeDotsLabs/watermill/message"
)
type EnnoblementPublisher struct {
publisher message.Publisher
marshaler CommandEventMarshaler
}
func NewEnnoblementPublisher(publisher message.Publisher, marshaler CommandEventMarshaler) *EnnoblementPublisher {
return &EnnoblementPublisher{publisher: publisher, marshaler: marshaler}
}
func (e *EnnoblementPublisher) CmdRefresh(ctx context.Context, payloads ...domain.RefreshEnnoblementsCmdPayload) error {
msgs := make([]*message.Message, 0, len(payloads))
for _, p := range payloads {
2023-02-24 04:52:33 +00:00
msg, err := e.marshaler.Marshal(model.RefreshEnnoblementsCmdPayload(p))
if err != nil {
2023-02-24 05:02:34 +00:00
return fmt.Errorf("%s: couldn't marshal RefreshEnnoblementsCmdPayload: %w", p.Key, err)
}
2023-02-24 04:52:33 +00:00
msg.SetContext(ctx)
2023-02-24 04:52:33 +00:00
msgs = append(msgs, msg)
}
if err := e.publisher.Publish(ennoblementsCmdRefresh, msgs...); err != nil {
2023-02-24 05:02:34 +00:00
return fmt.Errorf("%s: publisher.Publish: %w", ennoblementsCmdRefresh, err)
}
return nil
}