feature/pubsub #7
@@ -254,7 +254,14 @@ func (s *PoolServer) AddMultipleItemHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
reply, err := s.ApplyLocal(r.Context(), id, getMultipleAddMessages(r.Context(), setCartItems.Items, setCartItems.Country)...)
|
msgs := getMultipleAddMessages(r.Context(), setCartItems.Items, setCartItems.Country)
|
||||||
|
|
||||||
|
err = s.HandleReservations(r.Context(), id, msgs...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
reply, err := s.ApplyLocal(r.Context(), id, msgs...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -274,11 +281,16 @@ func (s *PoolServer) GetReservationTime(item *messages.AddItem) time.Duration {
|
|||||||
//return nil
|
//return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *PoolServer) HandleReservations(ctx context.Context, cartId cart.CartId, msgs ...*messages.AddItem) error {
|
func (s *PoolServer) HandleReservations(ctx context.Context, cartId cart.CartId, msgs ...proto.Message) error {
|
||||||
if s.reservationService == nil {
|
if s.reservationService == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, item := range msgs {
|
for _, msg := range msgs {
|
||||||
|
item, ok := msg.(*messages.AddItem)
|
||||||
|
if !ok {
|
||||||
|
log.Printf("not an AddItem message, skipping reservation, was of type: %T", msg)
|
||||||
|
continue
|
||||||
|
}
|
||||||
timeout := s.GetReservationTime(item)
|
timeout := s.GetReservationTime(item)
|
||||||
if timeout == 0 {
|
if timeout == 0 {
|
||||||
continue
|
continue
|
||||||
@@ -320,8 +332,9 @@ func (s *PoolServer) AddSkuRequestHandler(w http.ResponseWriter, r *http.Request
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if s.reservationService != nil {
|
err = s.HandleReservations(r.Context(), id, msg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
reply, err := s.ApplyLocal(r.Context(), id, msg)
|
reply, err := s.ApplyLocal(r.Context(), id, msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user