Class: Amazon::AWS::ShoppingCart::CartCreate
- Inherits:
-
CartOperation
- Object
- Operation
- CartOperation
- Amazon::AWS::ShoppingCart::CartCreate
- Defined in:
- lib/ruby-paa/aws/shoppingcart.rb
Overview
Worker class used by Cart#cart_create.
Direct Known Subclasses
Constant Summary
Constants inherited from Operation
Instance Attribute Summary
Attributes inherited from Operation
#kind, #params, #response_group
Instance Method Summary collapse
-
#initialize(id_type, item_id, quantity, merge_cart = false, save_for_later = nil, *more_items) ⇒ CartCreate
constructor
Create a shopping-cart and add item(s) to it.
Methods inherited from CartOperation
Methods inherited from Operation
#batch, #query_parameters, #response_group_orig=
Constructor Details
#initialize(id_type, item_id, quantity, merge_cart = false, save_for_later = nil, *more_items) ⇒ CartCreate
Create a shopping-cart and add item(s) to it.
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 |
# File 'lib/ruby-paa/aws/shoppingcart.rb', line 422 def initialize(id_type, item_id, quantity, merge_cart=false, save_for_later=nil, *more_items) # FIXME: Need to deal with ListItemId, too. # Prepend first item to more_items array (which may be empty). # more_items.unshift( { item_id => quantity } ) mc = merge_cart ? 'True' : 'False' more_items.collect! do |extra_item| items = [] extra_item.each do |item| item_id, quantity = item case save_for_later when true items << { id_type => item_id, 'Action' => 'SaveForLater' } when false items << { id_type => item_id, 'Action' => 'MoveToCart' } when nil items << { id_type => item_id, 'Quantity' => quantity } else raise CartError, "save_for_later must be true, false or nil, but was #{save_for_later}" end end items end more_items.flatten! # Force batch syntax. # params = {} more_items.each_with_index do |hash, index| hash.each do |k, v| shared = 'Item.%d.%s' % [ index + 1, k ] params[shared] = v end end params.merge!( { 'MergeCart' => mc } ) if merge_cart super( params ) end |