Files
bl/common/utils/event/test_scenarios/request-reply-with-cancellation/orders/service.go

29 lines
655 B
Go
Raw Normal View History

package orders
import (
"context"
"github.com/badu/bus"
"github.com/badu/bus/test_scenarios/request-reply-with-cancellation/events"
)
type ServiceImpl struct {
}
func NewService() ServiceImpl {
result := ServiceImpl{}
return result
}
func (s *ServiceImpl) CreateOrder(ctx context.Context, productIDs []int) (*Order, error) {
event := events.CreateOrderEvent{State: events.NewEventState(ctx), ProductIDs: productIDs, NewOrder: &events.NewOrder{}}
bus.Pub(event)
<-event.State.Done
if event.NewOrder != nil && event.State.Error == nil {
return &Order{ID: event.NewOrder.ID, ProductIDs: productIDs}, nil
}
return nil, event.State.Error
}