flowcommerce 0.2.35 → 0.2.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58e609d3919fc7a82ad2c13bb433c22ea4177d12
4
- data.tar.gz: 4fe232b1d8d20f5304a3466c54a68a8651e8e228
3
+ metadata.gz: 4728ff6fa49f71c1ce5daa33fb670993ded01e2e
4
+ data.tar.gz: 1f08893fcac0e5a13ebc5ff17c3e53be2eba9864
5
5
  SHA512:
6
- metadata.gz: 402b83c97265093829917c32d8786aabd2733d08735d22ba3d6c8f8d7fb1b9e280621dfc196c6bfc014ad27a033406b2461a38dc98673df0055d0259ef8935f9
7
- data.tar.gz: 29f8beb4d493d50f64713740906e30a22a8fb50d177b50a1a6f2dc9a19253e3e233ef7fd572014e40cb911eb08e9d46a050869f72380b87889abb12e89e97636
6
+ metadata.gz: 0e95b5919b45a2ccdd30ad604c22afe6e4f9f6480687e32806f31cc5040a14c01eceb440f6ec56ffa60de82a06859e449fb715d8237fd80bbf3e98ebd162931f
7
+ data.tar.gz: e9915994db625b9353c44ca138996b4cba1ebd6c10619f7585e34cb9b81eee20be2f77cfee3bc0d39735ba1485ffd19e0f8cb861eeaea6e89a5e4397757bcde1
@@ -1,6 +1,6 @@
1
1
  # Generated by API Builder - https://www.apibuilder.io
2
2
  # Service version: 0.3.65
3
- # apibuilder:0.12.61 https://app.apibuilder.io/flow/api/0.3.84/ruby_client
3
+ # apibuilder:0.12.61 https://app.apibuilder.io/flow/api/0.3.85/ruby_client
4
4
 
5
5
  require 'cgi'
6
6
  require 'net/http'
@@ -25,7 +25,7 @@ module Io
25
25
 
26
26
  BASE_URL = 'https://api.flow.io' unless defined?(Constants::BASE_URL)
27
27
  NAMESPACE = 'io.flow.v0' unless defined?(Constants::NAMESPACE)
28
- USER_AGENT = 'apibuilder:0.12.61 https://app.apibuilder.io/flow/api/0.3.84/ruby_client' unless defined?(Constants::USER_AGENT)
28
+ USER_AGENT = 'apibuilder:0.12.61 https://app.apibuilder.io/flow/api/0.3.85/ruby_client' unless defined?(Constants::USER_AGENT)
29
29
  VERSION = '0.3.65' unless defined?(Constants::VERSION)
30
30
  VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
31
31
 
@@ -104,6 +104,10 @@ module Io
104
104
  @order_identifiers ||= ::Io::Flow::V0::Clients::OrderIdentifiers.new(self)
105
105
  end
106
106
 
107
+ def order_promotions
108
+ @order_promotions ||= ::Io::Flow::V0::Clients::OrderPromotions.new(self)
109
+ end
110
+
107
111
  def organizations
108
112
  @organizations ||= ::Io::Flow::V0::Clients::Organizations.new(self)
109
113
  end
@@ -1073,6 +1077,21 @@ module Io
1073
1077
  nil
1074
1078
  end
1075
1079
 
1080
+ # Creates a free shipping promotion to the order, automatically applying it to
1081
+ # the order if the order meets the defined promotion trigger.
1082
+ def put_promotions_and_free_shipping_by_number_and_key(organization, number, key, free_shipping_order_promotion_form, incoming={})
1083
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1084
+ HttpClient::Preconditions.assert_class('number', number, String)
1085
+ HttpClient::Preconditions.assert_class('key', key, String)
1086
+ opts = HttpClient::Helper.symbolize_keys(incoming)
1087
+ query = {
1088
+ :expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
1089
+ }.delete_if { |k, v| v.nil? }
1090
+ (x = free_shipping_order_promotion_form; x.is_a?(::Io::Flow::V0::Models::FreeShippingOrderPromotionForm) ? x : ::Io::Flow::V0::Models::FreeShippingOrderPromotionForm.new(x))
1091
+ r = @client.request("/#{CGI.escape(organization)}/orders/#{CGI.escape(number)}/promotions/#{CGI.escape(key)}/free_shipping").with_query(query).with_json(free_shipping_order_promotion_form.to_json).put
1092
+ ::Io::Flow::V0::Models::FreeShippingOrderPromotion.new(r)
1093
+ end
1094
+
1076
1095
  # Submits an order. You will get a validation error if the order has already
1077
1096
  # expired (and a new quote could not be automatically recreated for a lower or
1078
1097
  # same price). This method is idempotent - submitting an order a second time
@@ -1231,6 +1250,22 @@ module Io
1231
1250
 
1232
1251
  end
1233
1252
 
1253
+ class OrderPromotions
1254
+
1255
+ def initialize(client)
1256
+ @client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
1257
+ end
1258
+
1259
+ # Deletes the order promotion with the specified key
1260
+ def delete_by_key(organization, key)
1261
+ HttpClient::Preconditions.assert_class('organization', organization, String)
1262
+ HttpClient::Preconditions.assert_class('key', key, String)
1263
+ r = @client.request("/#{CGI.escape(organization)}/order/promotions/#{CGI.escape(key)}").delete
1264
+ nil
1265
+ end
1266
+
1267
+ end
1268
+
1234
1269
  class Organizations
1235
1270
 
1236
1271
  def initialize(client)
@@ -2379,6 +2414,15 @@ module Io
2379
2414
  nil
2380
2415
  end
2381
2416
 
2417
+ # Create a new card authorization using card details, or the token of a
2418
+ # previously tokenized card.
2419
+ def post_card(organization, card_authorization_form)
2420
+ HttpClient::Preconditions.assert_class('organization', organization, String)
2421
+ (x = card_authorization_form; x.is_a?(::Io::Flow::V0::Models::CardAuthorizationForm) ? x : ::Io::Flow::V0::Models::CardAuthorizationForm.new(x))
2422
+ r = @client.request("/#{CGI.escape(organization)}/authorizations/card").with_json(card_authorization_form.to_json).post
2423
+ ::Io::Flow::V0::Models::CardAuthorization.new(r)
2424
+ end
2425
+
2382
2426
  # Create a new online authorization.
2383
2427
  def post_online(organization, authorization_form)
2384
2428
  HttpClient::Preconditions.assert_class('organization', organization, String)
@@ -4980,7 +5024,7 @@ module Io
4980
5024
  class AuthorizationForm
4981
5025
 
4982
5026
  module Types
4983
- # Creates a new authorization by copying an existing on
5027
+ # Creates a new authorization by copying an existing one.
4984
5028
  AUTHORIZATION_COPY_FORM = 'authorization_copy_form' unless defined?(AUTHORIZATION_COPY_FORM)
4985
5029
  # Enables card payments
4986
5030
  DIRECT_AUTHORIZATION_FORM = 'direct_authorization_form' unless defined?(DIRECT_AUTHORIZATION_FORM)
@@ -4991,6 +5035,9 @@ module Io
4991
5035
  # Enables authorizations via redirect-based alternative payment methods, such as
4992
5036
  # AliPay.
4993
5037
  REDIRECT_AUTHORIZATION_FORM = 'redirect_authorization_form' unless defined?(REDIRECT_AUTHORIZATION_FORM)
5038
+ # Enables authorizations for a credit card; will eventually replace direct and
5039
+ # merchant of record authorization forms.
5040
+ CARD_AUTHORIZATION_FORM = 'card_authorization_form' unless defined?(CARD_AUTHORIZATION_FORM)
4994
5041
  end
4995
5042
 
4996
5043
  attr_reader :discriminator
@@ -5002,7 +5049,7 @@ module Io
5002
5049
  end
5003
5050
 
5004
5051
  def subtype_to_hash
5005
- raise 'Cannot serialize an instance of authorization_form directly - must use one of the specific types: authorization_copy_form, direct_authorization_form, merchant_of_record_authorization_form, paypal_authorization_form, redirect_authorization_form'
5052
+ raise 'Cannot serialize an instance of authorization_form directly - must use one of the specific types: authorization_copy_form, direct_authorization_form, merchant_of_record_authorization_form, paypal_authorization_form, redirect_authorization_form, card_authorization_form'
5006
5053
  end
5007
5054
 
5008
5055
  def to_hash
@@ -5021,6 +5068,7 @@ module Io
5021
5068
  when Types::MERCHANT_OF_RECORD_AUTHORIZATION_FORM; MerchantOfRecordAuthorizationForm.new(hash)
5022
5069
  when Types::PAYPAL_AUTHORIZATION_FORM; PaypalAuthorizationForm.new(hash)
5023
5070
  when Types::REDIRECT_AUTHORIZATION_FORM; RedirectAuthorizationForm.new(hash)
5071
+ when Types::CARD_AUTHORIZATION_FORM; CardAuthorizationForm.new(hash)
5024
5072
  else AuthorizationFormUndefinedType.new(:discriminator => discriminator)
5025
5073
  end
5026
5074
  end
@@ -5051,6 +5099,69 @@ module Io
5051
5099
 
5052
5100
  end
5053
5101
 
5102
+ # Represents the data needed to create a card authorization.
5103
+ class CardAuthorizationData
5104
+
5105
+ module Types
5106
+ CARD_TOKEN_FORM = 'card_token_form' unless defined?(CARD_TOKEN_FORM)
5107
+ CARD_FORM = 'card_form' unless defined?(CARD_FORM)
5108
+ end
5109
+
5110
+ attr_reader :discriminator
5111
+
5112
+ def initialize(incoming={})
5113
+ opts = HttpClient::Helper.symbolize_keys(incoming)
5114
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'CardAuthorizationData')
5115
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
5116
+ end
5117
+
5118
+ def subtype_to_hash
5119
+ raise 'Cannot serialize an instance of card_authorization_data directly - must use one of the specific types: card_token_form, card_form'
5120
+ end
5121
+
5122
+ def to_hash
5123
+ subtype_to_hash.merge(:discriminator => @discriminator)
5124
+ end
5125
+
5126
+ def CardAuthorizationData.from_json(hash)
5127
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
5128
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
5129
+ if discriminator.empty?
5130
+ raise "Union type[card_authorization_data] requires a field named 'discriminator'"
5131
+ end
5132
+ case discriminator
5133
+ when Types::CARD_TOKEN_FORM; CardTokenForm.new(hash)
5134
+ when Types::CARD_FORM; CardForm.new(hash)
5135
+ else CardAuthorizationDataUndefinedType.new(:discriminator => discriminator)
5136
+ end
5137
+ end
5138
+
5139
+ end
5140
+
5141
+ class CardAuthorizationDataUndefinedType < CardAuthorizationData
5142
+
5143
+ attr_reader :name
5144
+
5145
+ def initialize(incoming={})
5146
+ super(:discriminator => 'undefined_type')
5147
+ opts = HttpClient::Helper.symbolize_keys(incoming)
5148
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
5149
+ end
5150
+
5151
+ def subtype_to_hash
5152
+ raise 'Unable to serialize undefined type to json'
5153
+ end
5154
+
5155
+ def copy(incoming={})
5156
+ raise 'Operation not supported for undefined type'
5157
+ end
5158
+
5159
+ def to_hash
5160
+ raise 'Operation not supported for undefined type'
5161
+ end
5162
+
5163
+ end
5164
+
5054
5165
  # A delivery represents a group of items that will be delivered together -
5055
5166
  # presenting a single price and delivery time frame, where applicable, to the
5056
5167
  # user. Deliveries commonly are created based on the type of item and, for
@@ -6375,6 +6486,126 @@ module Io
6375
6486
 
6376
6487
  end
6377
6488
 
6489
+ class OrderPromotion
6490
+
6491
+ module Types
6492
+ FREE_SHIPPING_ORDER_PROMOTION = 'free_shipping_order_promotion' unless defined?(FREE_SHIPPING_ORDER_PROMOTION)
6493
+ end
6494
+
6495
+ attr_reader :discriminator
6496
+
6497
+ def initialize(incoming={})
6498
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6499
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'OrderPromotion')
6500
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
6501
+ end
6502
+
6503
+ def subtype_to_hash
6504
+ raise 'Cannot serialize an instance of order_promotion directly - must use one of the specific types: free_shipping_order_promotion'
6505
+ end
6506
+
6507
+ def to_hash
6508
+ subtype_to_hash.merge(:discriminator => @discriminator)
6509
+ end
6510
+
6511
+ def OrderPromotion.from_json(hash)
6512
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
6513
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
6514
+ if discriminator.empty?
6515
+ raise "Union type[order_promotion] requires a field named 'discriminator'"
6516
+ end
6517
+ case discriminator
6518
+ when Types::FREE_SHIPPING_ORDER_PROMOTION; FreeShippingOrderPromotion.new(hash)
6519
+ else OrderPromotionUndefinedType.new(:discriminator => discriminator)
6520
+ end
6521
+ end
6522
+
6523
+ end
6524
+
6525
+ class OrderPromotionUndefinedType < OrderPromotion
6526
+
6527
+ attr_reader :name
6528
+
6529
+ def initialize(incoming={})
6530
+ super(:discriminator => 'undefined_type')
6531
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6532
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
6533
+ end
6534
+
6535
+ def subtype_to_hash
6536
+ raise 'Unable to serialize undefined type to json'
6537
+ end
6538
+
6539
+ def copy(incoming={})
6540
+ raise 'Operation not supported for undefined type'
6541
+ end
6542
+
6543
+ def to_hash
6544
+ raise 'Operation not supported for undefined type'
6545
+ end
6546
+
6547
+ end
6548
+
6549
+ class OrderPromotionForm
6550
+
6551
+ module Types
6552
+ FREE_SHIPPING_ORDER_PROMOTION_FORM = 'free_shipping_order_promotion_form' unless defined?(FREE_SHIPPING_ORDER_PROMOTION_FORM)
6553
+ end
6554
+
6555
+ attr_reader :discriminator
6556
+
6557
+ def initialize(incoming={})
6558
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6559
+ HttpClient::Preconditions.require_keys(opts, [:discriminator], 'OrderPromotionForm')
6560
+ @discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
6561
+ end
6562
+
6563
+ def subtype_to_hash
6564
+ raise 'Cannot serialize an instance of order_promotion_form directly - must use one of the specific types: free_shipping_order_promotion_form'
6565
+ end
6566
+
6567
+ def to_hash
6568
+ subtype_to_hash.merge(:discriminator => @discriminator)
6569
+ end
6570
+
6571
+ def OrderPromotionForm.from_json(hash)
6572
+ HttpClient::Preconditions.assert_class('hash', hash, Hash)
6573
+ discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
6574
+ if discriminator.empty?
6575
+ raise "Union type[order_promotion_form] requires a field named 'discriminator'"
6576
+ end
6577
+ case discriminator
6578
+ when Types::FREE_SHIPPING_ORDER_PROMOTION_FORM; FreeShippingOrderPromotionForm.new(hash)
6579
+ else OrderPromotionFormUndefinedType.new(:discriminator => discriminator)
6580
+ end
6581
+ end
6582
+
6583
+ end
6584
+
6585
+ class OrderPromotionFormUndefinedType < OrderPromotionForm
6586
+
6587
+ attr_reader :name
6588
+
6589
+ def initialize(incoming={})
6590
+ super(:discriminator => 'undefined_type')
6591
+ opts = HttpClient::Helper.symbolize_keys(incoming)
6592
+ @name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
6593
+ end
6594
+
6595
+ def subtype_to_hash
6596
+ raise 'Unable to serialize undefined type to json'
6597
+ end
6598
+
6599
+ def copy(incoming={})
6600
+ raise 'Operation not supported for undefined type'
6601
+ end
6602
+
6603
+ def to_hash
6604
+ raise 'Operation not supported for undefined type'
6605
+ end
6606
+
6607
+ end
6608
+
6378
6609
  # Represents data for a specific online payment method
6379
6610
  class Payment
6380
6611
 
@@ -10255,9 +10486,18 @@ module Io
10255
10486
  end
10256
10487
 
10257
10488
  def PromotionTriggerType.ALL
10258
- @@all ||= [PromotionTriggerType.order_subtotal]
10489
+ @@all ||= [PromotionTriggerType.automatic, PromotionTriggerType.order_subtotal]
10490
+ end
10491
+
10492
+ # Automatic indicates the the promotion will be automatically applied to the
10493
+ # order
10494
+ def PromotionTriggerType.automatic
10495
+ @@_automatic ||= PromotionTriggerType.new('automatic')
10259
10496
  end
10260
10497
 
10498
+ # Order subtotal sets a minimum value - orders whose subtotal is greater than
10499
+ # the minimum will have the promotion applied. A common use case is to offer
10500
+ # free shipping to orders about 150 CAD.
10261
10501
  def PromotionTriggerType.order_subtotal
10262
10502
  @@_order_subtotal ||= PromotionTriggerType.new('order_subtotal')
10263
10503
  end
@@ -13324,6 +13564,52 @@ module Io
13324
13564
 
13325
13565
  end
13326
13566
 
13567
+ # Similar to a merchant of record authorization form, but it allows card
13568
+ # information to be included rather than tokenizing first. If the amount is $0,
13569
+ # then
13570
+ class CardAuthorizationForm < AuthorizationForm
13571
+
13572
+ attr_reader :card, :order_number, :amount, :currency, :key, :cvv, :attributes, :ip, :options
13573
+
13574
+ def initialize(incoming={})
13575
+ super(:discriminator => AuthorizationForm::Types::CARD_AUTHORIZATION_FORM)
13576
+ opts = HttpClient::Helper.symbolize_keys(incoming)
13577
+ HttpClient::Preconditions.require_keys(opts, [:card], 'CardAuthorizationForm')
13578
+ @card = (x = opts.delete(:card); x.is_a?(::Io::Flow::V0::Models::CardAuthorizationData) ? x : ::Io::Flow::V0::Models::CardAuthorizationData.from_json(x))
13579
+ @order_number = (x = opts.delete(:order_number); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_number', x, String))
13580
+ @amount = (x = opts.delete(:amount); x.nil? ? nil : HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(x), BigDecimal))
13581
+ @currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
13582
+ @key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
13583
+ @cvv = (x = opts.delete(:cvv); x.nil? ? nil : HttpClient::Preconditions.assert_class('cvv', x, String))
13584
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
13585
+ @ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
13586
+ @options = (x = opts.delete(:options); x.nil? ? nil : HttpClient::Preconditions.assert_class('options', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::AuthorizationOption) ? x : ::Io::Flow::V0::Models::AuthorizationOption.apply(x)) })
13587
+ end
13588
+
13589
+ def to_json
13590
+ JSON.dump(to_hash)
13591
+ end
13592
+
13593
+ def copy(incoming={})
13594
+ CardAuthorizationForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
13595
+ end
13596
+
13597
+ def subtype_to_hash
13598
+ {
13599
+ :card => card.to_hash,
13600
+ :order_number => order_number,
13601
+ :amount => amount,
13602
+ :currency => currency,
13603
+ :key => key,
13604
+ :cvv => cvv,
13605
+ :attributes => attributes.nil? ? nil : attributes,
13606
+ :ip => ip,
13607
+ :options => options.nil? ? nil : options.map { |o| o.value }
13608
+ }
13609
+ end
13610
+
13611
+ end
13612
+
13327
13613
  # Represents an authorization for a card payment method
13328
13614
  class CardAuthorizationUpserted < Event
13329
13615
 
@@ -13460,11 +13746,12 @@ module Io
13460
13746
 
13461
13747
  end
13462
13748
 
13463
- class CardForm
13749
+ class CardForm < CardAuthorizationData
13464
13750
 
13465
13751
  attr_reader :number, :cipher, :expiration_month, :expiration_year, :name, :cvv, :address, :ip, :challenge_text, :challenge_cipher, :token_type
13466
13752
 
13467
13753
  def initialize(incoming={})
13754
+ super(:discriminator => CardAuthorizationData::Types::CARD_FORM)
13468
13755
  opts = HttpClient::Helper.symbolize_keys(incoming)
13469
13756
  HttpClient::Preconditions.require_keys(opts, [:expiration_month, :expiration_year, :name, :cvv], 'CardForm')
13470
13757
  @number = (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, String))
@@ -13485,10 +13772,10 @@ module Io
13485
13772
  end
13486
13773
 
13487
13774
  def copy(incoming={})
13488
- CardForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
13775
+ CardForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
13489
13776
  end
13490
13777
 
13491
- def to_hash
13778
+ def subtype_to_hash
13492
13779
  {
13493
13780
  :number => number,
13494
13781
  :cipher => cipher,
@@ -13563,6 +13850,33 @@ module Io
13563
13850
 
13564
13851
  end
13565
13852
 
13853
+ class CardTokenForm < CardAuthorizationData
13854
+
13855
+ attr_reader :token
13856
+
13857
+ def initialize(incoming={})
13858
+ super(:discriminator => CardAuthorizationData::Types::CARD_TOKEN_FORM)
13859
+ opts = HttpClient::Helper.symbolize_keys(incoming)
13860
+ HttpClient::Preconditions.require_keys(opts, [:token], 'CardTokenForm')
13861
+ @token = HttpClient::Preconditions.assert_class('token', opts.delete(:token), String)
13862
+ end
13863
+
13864
+ def to_json
13865
+ JSON.dump(to_hash)
13866
+ end
13867
+
13868
+ def copy(incoming={})
13869
+ CardTokenForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
13870
+ end
13871
+
13872
+ def subtype_to_hash
13873
+ {
13874
+ :token => token
13875
+ }
13876
+ end
13877
+
13878
+ end
13879
+
13566
13880
  class CardUpserted < Event
13567
13881
 
13568
13882
  attr_reader :event_id, :timestamp, :organization, :id, :type, :expiration, :iin, :last4, :name, :address
@@ -16372,13 +16686,14 @@ module Io
16372
16686
 
16373
16687
  class FreeShipping < Promotion
16374
16688
 
16375
- attr_reader :trigger
16689
+ attr_reader :trigger, :max
16376
16690
 
16377
16691
  def initialize(incoming={})
16378
16692
  super(:discriminator => Promotion::Types::FREE_SHIPPING)
16379
16693
  opts = HttpClient::Helper.symbolize_keys(incoming)
16380
16694
  HttpClient::Preconditions.require_keys(opts, [:trigger], 'FreeShipping')
16381
16695
  @trigger = (x = opts.delete(:trigger); x.is_a?(::Io::Flow::V0::Models::PromotionTrigger) ? x : ::Io::Flow::V0::Models::PromotionTrigger.new(x))
16696
+ @max = (x = opts.delete(:max); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x)))
16382
16697
  end
16383
16698
 
16384
16699
  def to_json
@@ -16391,7 +16706,76 @@ module Io
16391
16706
 
16392
16707
  def subtype_to_hash
16393
16708
  {
16394
- :trigger => trigger.to_hash
16709
+ :trigger => trigger.to_hash,
16710
+ :max => max.nil? ? nil : max.to_hash
16711
+ }
16712
+ end
16713
+
16714
+ end
16715
+
16716
+ class FreeShippingOrderPromotion < OrderPromotion
16717
+
16718
+ attr_reader :id, :order, :key, :trigger, :max, :attributes
16719
+
16720
+ def initialize(incoming={})
16721
+ super(:discriminator => OrderPromotion::Types::FREE_SHIPPING_ORDER_PROMOTION)
16722
+ opts = HttpClient::Helper.symbolize_keys(incoming)
16723
+ HttpClient::Preconditions.require_keys(opts, [:id, :order, :key, :trigger, :attributes], 'FreeShippingOrderPromotion')
16724
+ @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
16725
+ @order = (x = opts.delete(:order); x.is_a?(::Io::Flow::V0::Models::ExpandableOrder) ? x : ::Io::Flow::V0::Models::ExpandableOrder.from_json(x))
16726
+ @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
16727
+ @trigger = (x = opts.delete(:trigger); x.is_a?(::Io::Flow::V0::Models::OrderPromotionTrigger) ? x : ::Io::Flow::V0::Models::OrderPromotionTrigger.new(x))
16728
+ @max = (x = opts.delete(:max); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x)))
16729
+ @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
16730
+ end
16731
+
16732
+ def to_json
16733
+ JSON.dump(to_hash)
16734
+ end
16735
+
16736
+ def copy(incoming={})
16737
+ FreeShippingOrderPromotion.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16738
+ end
16739
+
16740
+ def subtype_to_hash
16741
+ {
16742
+ :id => id,
16743
+ :order => order.to_hash,
16744
+ :key => key,
16745
+ :trigger => trigger.to_hash,
16746
+ :max => max.nil? ? nil : max.to_hash,
16747
+ :attributes => attributes
16748
+ }
16749
+ end
16750
+
16751
+ end
16752
+
16753
+ class FreeShippingOrderPromotionForm < OrderPromotionForm
16754
+
16755
+ attr_reader :trigger, :max, :attributes
16756
+
16757
+ def initialize(incoming={})
16758
+ super(:discriminator => OrderPromotionForm::Types::FREE_SHIPPING_ORDER_PROMOTION_FORM)
16759
+ opts = HttpClient::Helper.symbolize_keys(incoming)
16760
+ HttpClient::Preconditions.require_keys(opts, [:trigger], 'FreeShippingOrderPromotionForm')
16761
+ @trigger = (x = opts.delete(:trigger); x.is_a?(::Io::Flow::V0::Models::PromotionTriggerForm) ? x : ::Io::Flow::V0::Models::PromotionTriggerForm.new(x))
16762
+ @max = (x = opts.delete(:max); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PriceForm) ? x : ::Io::Flow::V0::Models::PriceForm.new(x)))
16763
+ @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
16764
+ end
16765
+
16766
+ def to_json
16767
+ JSON.dump(to_hash)
16768
+ end
16769
+
16770
+ def copy(incoming={})
16771
+ FreeShippingOrderPromotionForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
16772
+ end
16773
+
16774
+ def subtype_to_hash
16775
+ {
16776
+ :trigger => trigger.to_hash,
16777
+ :max => max.nil? ? nil : max.to_hash,
16778
+ :attributes => attributes.nil? ? nil : attributes
16395
16779
  }
16396
16780
  end
16397
16781
 
@@ -21462,6 +21846,34 @@ module Io
21462
21846
 
21463
21847
  end
21464
21848
 
21849
+ class OrderPromotionTrigger
21850
+
21851
+ attr_reader :type, :min
21852
+
21853
+ def initialize(incoming={})
21854
+ opts = HttpClient::Helper.symbolize_keys(incoming)
21855
+ HttpClient::Preconditions.require_keys(opts, [:type], 'OrderPromotionTrigger')
21856
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::PromotionTriggerType) ? x : ::Io::Flow::V0::Models::PromotionTriggerType.apply(x))
21857
+ @min = (x = opts.delete(:min); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x)))
21858
+ end
21859
+
21860
+ def to_json
21861
+ JSON.dump(to_hash)
21862
+ end
21863
+
21864
+ def copy(incoming={})
21865
+ OrderPromotionTrigger.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
21866
+ end
21867
+
21868
+ def to_hash
21869
+ {
21870
+ :type => type.value,
21871
+ :min => min.nil? ? nil : min.to_hash
21872
+ }
21873
+ end
21874
+
21875
+ end
21876
+
21465
21877
  # The order put form is used to upsert an order, providing the details on
21466
21878
  # pricing and delivery options for destination and items/quantities specified.
21467
21879
  class OrderPutForm
@@ -23645,7 +24057,7 @@ module Io
23645
24057
 
23646
24058
  class PromotionTrigger
23647
24059
 
23648
- attr_reader :type, :min, :remaining, :max
24060
+ attr_reader :type, :min, :remaining
23649
24061
 
23650
24062
  def initialize(incoming={})
23651
24063
  opts = HttpClient::Helper.symbolize_keys(incoming)
@@ -23653,7 +24065,6 @@ module Io
23653
24065
  @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::PromotionTriggerType) ? x : ::Io::Flow::V0::Models::PromotionTriggerType.apply(x))
23654
24066
  @min = (x = opts.delete(:min); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
23655
24067
  @remaining = (x = opts.delete(:remaining); x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x))
23656
- @max = (x = opts.delete(:max); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Price) ? x : ::Io::Flow::V0::Models::Price.new(x)))
23657
24068
  end
23658
24069
 
23659
24070
  def to_json
@@ -23668,8 +24079,35 @@ module Io
23668
24079
  {
23669
24080
  :type => type.value,
23670
24081
  :min => min.to_hash,
23671
- :remaining => remaining.to_hash,
23672
- :max => max.nil? ? nil : max.to_hash
24082
+ :remaining => remaining.to_hash
24083
+ }
24084
+ end
24085
+
24086
+ end
24087
+
24088
+ class PromotionTriggerForm
24089
+
24090
+ attr_reader :type, :min
24091
+
24092
+ def initialize(incoming={})
24093
+ opts = HttpClient::Helper.symbolize_keys(incoming)
24094
+ HttpClient::Preconditions.require_keys(opts, [:type], 'PromotionTriggerForm')
24095
+ @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::PromotionTriggerType) ? x : ::Io::Flow::V0::Models::PromotionTriggerType.apply(x))
24096
+ @min = (x = opts.delete(:min); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::PriceForm) ? x : ::Io::Flow::V0::Models::PriceForm.new(x)))
24097
+ end
24098
+
24099
+ def to_json
24100
+ JSON.dump(to_hash)
24101
+ end
24102
+
24103
+ def copy(incoming={})
24104
+ PromotionTriggerForm.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
24105
+ end
24106
+
24107
+ def to_hash
24108
+ {
24109
+ :type => type.value,
24110
+ :min => min.nil? ? nil : min.to_hash
23673
24111
  }
23674
24112
  end
23675
24113
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowcommerce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.35
4
+ version: 0.2.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flow Commerce, Inc.