feature/pubsub #7

Merged
mats merged 67 commits from feature/pubsub into main 2025-11-28 17:45:22 +01:00
Showing only changes of commit 87625ffd5d - Show all commits

View File

@@ -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 {