23 lines
530 B
Go
23 lines
530 B
Go
package cart
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
messages "git.k6n.net/go-cart-actor/pkg/messages"
|
|
)
|
|
|
|
func SubscriptionAdded(grain *CartGrain, req *messages.SubscriptionAdded) error {
|
|
if grain.PaymentInProgress > 0 {
|
|
return ErrPaymentInProgress
|
|
}
|
|
for i, item := range grain.Items {
|
|
if item.Id == req.ItemId {
|
|
grain.Items[i].SubscriptionDetailsId = req.DetailsId
|
|
grain.Items[i].OrderReference = req.OrderReference
|
|
grain.Items[i].IsSubscribed = true
|
|
return nil
|
|
}
|
|
}
|
|
return fmt.Errorf("item with ID %d not found", req.ItemId)
|
|
}
|