23 lines
513 B
Go
23 lines
513 B
Go
package cart
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"time"
|
|
|
|
"git.k6n.net/go-cart-actor/pkg/messages"
|
|
)
|
|
|
|
func (c *CartMutationContext) InventoryReserved(g *CartGrain, m *messages.InventoryReserved) error {
|
|
for _, item := range g.Items {
|
|
if item.ReservationEndTime != nil && item.ReservationEndTime.After(time.Now()) {
|
|
err := c.ReleaseItem(context.Background(), g.Id, item.Sku, item.StoreId)
|
|
if err != nil {
|
|
log.Printf("unable to release item reservation")
|
|
}
|
|
}
|
|
}
|
|
g.InventoryReserved = true
|
|
return nil
|
|
}
|