flowcommerce 0.2.3 → 0.2.4
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 +4 -4
- data/lib/flow_commerce/#flow_api_v0_client.rb# +24165 -0
- data/lib/flow_commerce/flow_api_v0_client.rb +639 -82
- metadata +3 -2
@@ -1,6 +1,6 @@
|
|
1
1
|
# Generated by apidoc - http://www.apidoc.me
|
2
2
|
# Service version: 0.2.87
|
3
|
-
# apidoc:0.11.76 http://www.apidoc.me/flow/api/0.2.
|
3
|
+
# apidoc:0.11.76 http://www.apidoc.me/flow/api/0.2.92/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 = 'apidoc:0.11.76 http://www.apidoc.me/flow/api/0.2.
|
28
|
+
USER_AGENT = 'apidoc:0.11.76 http://www.apidoc.me/flow/api/0.2.92/ruby_client' unless defined?(Constants::USER_AGENT)
|
29
29
|
VERSION = '0.2.87' unless defined?(Constants::VERSION)
|
30
30
|
VERSION_MAJOR = 0 unless defined?(VERSION_MAJOR)
|
31
31
|
|
@@ -180,6 +180,10 @@ module Io
|
|
180
180
|
@cards ||= ::Io::Flow::V0::Clients::Cards.new(self)
|
181
181
|
end
|
182
182
|
|
183
|
+
def payments
|
184
|
+
@payments ||= ::Io::Flow::V0::Clients::Payments.new(self)
|
185
|
+
end
|
186
|
+
|
183
187
|
def public_keys
|
184
188
|
@public_keys ||= ::Io::Flow::V0::Clients::PublicKeys.new(self)
|
185
189
|
end
|
@@ -664,6 +668,14 @@ module Io
|
|
664
668
|
::Io::Flow::V0::Models::Pricing.new(r)
|
665
669
|
end
|
666
670
|
|
671
|
+
# Get available promotions for the experience
|
672
|
+
def get_promotions_and_available_by_key(organization, key)
|
673
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
674
|
+
HttpClient::Preconditions.assert_class('key', key, String)
|
675
|
+
r = @client.request("/#{CGI.escape(organization)}/experiences/#{CGI.escape(key)}/promotions/available").get
|
676
|
+
r.map { |x| ::Io::Flow::V0::Models::AvailablePromotion.from_json(x) }
|
677
|
+
end
|
678
|
+
|
667
679
|
# Formats the requested amount using the formatting settings for the
|
668
680
|
# experience.
|
669
681
|
def get_conversions_by_base_and_amount(organization, base, amount, incoming={})
|
@@ -860,7 +872,8 @@ module Io
|
|
860
872
|
:country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)),
|
861
873
|
:ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)),
|
862
874
|
:currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)),
|
863
|
-
:language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String))
|
875
|
+
:language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String)),
|
876
|
+
:expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
|
864
877
|
}.delete_if { |k, v| v.nil? }
|
865
878
|
HttpClient::Preconditions.assert_class('order_form', order_form, ::Io::Flow::V0::Models::OrderForm)
|
866
879
|
r = @client.request("/#{CGI.escape(organization)}/orders").with_query(query).with_json(order_form.to_json).post
|
@@ -891,7 +904,8 @@ module Io
|
|
891
904
|
:country => (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String)),
|
892
905
|
:ip => (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String)),
|
893
906
|
:currency => (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String)),
|
894
|
-
:language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String))
|
907
|
+
:language => (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String)),
|
908
|
+
:expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
|
895
909
|
}.delete_if { |k, v| v.nil? }
|
896
910
|
HttpClient::Preconditions.assert_class('order_put_form', order_put_form, ::Io::Flow::V0::Models::OrderPutForm)
|
897
911
|
r = @client.request("/#{CGI.escape(organization)}/orders/#{CGI.escape(number)}").with_query(query).with_json(order_put_form.to_json).put
|
@@ -920,10 +934,14 @@ module Io
|
|
920
934
|
end
|
921
935
|
|
922
936
|
# Returns information about a specific order using an identifier number
|
923
|
-
def get_identifier_by_identifier_number(organization, identifier_number)
|
937
|
+
def get_identifier_by_identifier_number(organization, identifier_number, incoming={})
|
924
938
|
HttpClient::Preconditions.assert_class('organization', organization, String)
|
925
939
|
HttpClient::Preconditions.assert_class('identifier_number', identifier_number, String)
|
926
|
-
|
940
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
941
|
+
query = {
|
942
|
+
:expand => (x = opts.delete(:expand); x.nil? ? nil : HttpClient::Preconditions.assert_class('expand', x, Array).map { |v| HttpClient::Preconditions.assert_class('expand', v, String) })
|
943
|
+
}.delete_if { |k, v| v.nil? }
|
944
|
+
r = @client.request("/#{CGI.escape(organization)}/orders/identifier/#{CGI.escape(identifier_number)}").with_query(query).get
|
927
945
|
::Io::Flow::V0::Models::Order.new(r)
|
928
946
|
end
|
929
947
|
|
@@ -2253,6 +2271,68 @@ module Io
|
|
2253
2271
|
|
2254
2272
|
end
|
2255
2273
|
|
2274
|
+
class Payments
|
2275
|
+
|
2276
|
+
def initialize(client)
|
2277
|
+
@client = HttpClient::Preconditions.assert_class('client', client, ::Io::Flow::V0::Client)
|
2278
|
+
end
|
2279
|
+
|
2280
|
+
def get(organization, incoming={})
|
2281
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
2282
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
2283
|
+
query = {
|
2284
|
+
:id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
|
2285
|
+
:payment_method => (x = opts.delete(:payment_method); x.nil? ? nil : HttpClient::Preconditions.assert_class('payment_method', x, String)),
|
2286
|
+
:limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
|
2287
|
+
:offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
|
2288
|
+
:sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "-created_at" : x), String)
|
2289
|
+
}.delete_if { |k, v| v.nil? }
|
2290
|
+
r = @client.request("/#{CGI.escape(organization)}/payments").with_query(query).get
|
2291
|
+
r.map { |x| ::Io::Flow::V0::Models::Payment.from_json(x) }
|
2292
|
+
end
|
2293
|
+
|
2294
|
+
# Create a new payment. Note that when using JSONP to submit a payment, you do
|
2295
|
+
# not need to authenticate.
|
2296
|
+
def post(organization, payment_form)
|
2297
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
2298
|
+
HttpClient::Preconditions.assert_class('payment_form', payment_form, ::Io::Flow::V0::Models::PaymentForm)
|
2299
|
+
r = @client.request("/#{CGI.escape(organization)}/payments").with_json(payment_form.to_json).post
|
2300
|
+
::Io::Flow::V0::Models::Payment.from_json(r)
|
2301
|
+
end
|
2302
|
+
|
2303
|
+
# Returns information about a specific payment.
|
2304
|
+
def get_by_id(organization, id)
|
2305
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
2306
|
+
HttpClient::Preconditions.assert_class('id', id, String)
|
2307
|
+
r = @client.request("/#{CGI.escape(organization)}/payments/#{CGI.escape(id)}").get
|
2308
|
+
::Io::Flow::V0::Models::Payment.from_json(r)
|
2309
|
+
end
|
2310
|
+
|
2311
|
+
# Deletes the specified payment
|
2312
|
+
def delete_by_id(organization, id)
|
2313
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
2314
|
+
HttpClient::Preconditions.assert_class('id', id, String)
|
2315
|
+
r = @client.request("/#{CGI.escape(organization)}/payments/#{CGI.escape(id)}").delete
|
2316
|
+
nil
|
2317
|
+
end
|
2318
|
+
|
2319
|
+
# Provides visibility into recent changes of each object, including deletion
|
2320
|
+
def get_versions(organization, incoming={})
|
2321
|
+
HttpClient::Preconditions.assert_class('organization', organization, String)
|
2322
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
2323
|
+
query = {
|
2324
|
+
:id => (x = opts.delete(:id); x.nil? ? nil : HttpClient::Preconditions.assert_class('id', x, Array).map { |v| HttpClient::Preconditions.assert_class('id', v, String) }),
|
2325
|
+
:payment_id => (x = opts.delete(:payment_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('payment_id', x, Array).map { |v| HttpClient::Preconditions.assert_class('payment_id', v, String) }),
|
2326
|
+
:limit => HttpClient::Preconditions.assert_class('limit', (x = opts.delete(:limit); x.nil? ? 25 : x), Integer),
|
2327
|
+
:offset => HttpClient::Preconditions.assert_class('offset', (x = opts.delete(:offset); x.nil? ? 0 : x), Integer),
|
2328
|
+
:sort => HttpClient::Preconditions.assert_class('sort', (x = opts.delete(:sort); x.nil? ? "journal_timestamp" : x), String)
|
2329
|
+
}.delete_if { |k, v| v.nil? }
|
2330
|
+
r = @client.request("/#{CGI.escape(organization)}/payments/versions").with_query(query).get
|
2331
|
+
r.map { |x| ::Io::Flow::V0::Models::PaymentVersion.new(x) }
|
2332
|
+
end
|
2333
|
+
|
2334
|
+
end
|
2335
|
+
|
2256
2336
|
class PublicKeys
|
2257
2337
|
|
2258
2338
|
def initialize(client)
|
@@ -4268,10 +4348,8 @@ module Io
|
|
4268
4348
|
DIRECT_AUTHORIZATION_FORM = 'direct_authorization_form' unless defined?(DIRECT_AUTHORIZATION_FORM)
|
4269
4349
|
# Enables card payments with Flow as Merchant of Record
|
4270
4350
|
MERCHANT_OF_RECORD_AUTHORIZATION_FORM = 'merchant_of_record_authorization_form' unless defined?(MERCHANT_OF_RECORD_AUTHORIZATION_FORM)
|
4271
|
-
# Enables
|
4272
|
-
|
4273
|
-
# Enables online alternative payment methods with Flow as Merchant of Record
|
4274
|
-
MERCHANT_OF_RECORD_ONLINE_PAYMENT_FORM = 'merchant_of_record_online_payment_form' unless defined?(MERCHANT_OF_RECORD_ONLINE_PAYMENT_FORM)
|
4351
|
+
# Enables authorization via paypal
|
4352
|
+
PAYPAL_AUTHORIZATION_FORM = 'paypal_authorization_form' unless defined?(PAYPAL_AUTHORIZATION_FORM)
|
4275
4353
|
end
|
4276
4354
|
|
4277
4355
|
attr_reader :discriminator
|
@@ -4283,7 +4361,7 @@ module Io
|
|
4283
4361
|
end
|
4284
4362
|
|
4285
4363
|
def subtype_to_hash
|
4286
|
-
raise 'Cannot serialize an instance of authorization_form directly - must use one of the specific types: direct_authorization_form, merchant_of_record_authorization_form,
|
4364
|
+
raise 'Cannot serialize an instance of authorization_form directly - must use one of the specific types: direct_authorization_form, merchant_of_record_authorization_form, paypal_authorization_form'
|
4287
4365
|
end
|
4288
4366
|
|
4289
4367
|
def to_hash
|
@@ -4299,8 +4377,7 @@ module Io
|
|
4299
4377
|
case discriminator
|
4300
4378
|
when Types::DIRECT_AUTHORIZATION_FORM; DirectAuthorizationForm.new(hash)
|
4301
4379
|
when Types::MERCHANT_OF_RECORD_AUTHORIZATION_FORM; MerchantOfRecordAuthorizationForm.new(hash)
|
4302
|
-
when Types::
|
4303
|
-
when Types::MERCHANT_OF_RECORD_ONLINE_PAYMENT_FORM; MerchantOfRecordOnlinePaymentForm.new(hash)
|
4380
|
+
when Types::PAYPAL_AUTHORIZATION_FORM; PaypalAuthorizationForm.new(hash)
|
4304
4381
|
else AuthorizationFormUndefinedType.new(:discriminator => discriminator)
|
4305
4382
|
end
|
4306
4383
|
end
|
@@ -4533,6 +4610,8 @@ module Io
|
|
4533
4610
|
SUBCATALOG_ITEM_DELETED = 'subcatalog_item_deleted' unless defined?(SUBCATALOG_ITEM_DELETED)
|
4534
4611
|
RATE_DELETED = 'rate_deleted' unless defined?(RATE_DELETED)
|
4535
4612
|
RATE_UPSERTED = 'rate_upserted' unless defined?(RATE_UPSERTED)
|
4613
|
+
AVAILABLE_PROMOTIONS_UPSERTED = 'available_promotions_upserted' unless defined?(AVAILABLE_PROMOTIONS_UPSERTED)
|
4614
|
+
AVAILABLE_PROMOTIONS_DELETED = 'available_promotions_deleted' unless defined?(AVAILABLE_PROMOTIONS_DELETED)
|
4536
4615
|
EXPERIENCE_DELETED = 'experience_deleted' unless defined?(EXPERIENCE_DELETED)
|
4537
4616
|
EXPERIENCE_UPSERTED = 'experience_upserted' unless defined?(EXPERIENCE_UPSERTED)
|
4538
4617
|
ITEM_MARGIN_DELETED = 'item_margin_deleted' unless defined?(ITEM_MARGIN_DELETED)
|
@@ -4591,7 +4670,7 @@ module Io
|
|
4591
4670
|
end
|
4592
4671
|
|
4593
4672
|
def subtype_to_hash
|
4594
|
-
raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, rate_deleted, rate_upserted, experience_deleted, experience_upserted, item_margin_deleted, item_margin_upserted, item_sales_margin_deleted, item_sales_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_identifier_deleted, order_identifier_upserted, pricing_deleted, pricing_upserted, tier_upserted, tier_deleted, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, localized_item_upserted, localized_item_deleted, localized_item_snapshot, membership_upserted, membership_deleted, organization_upserted, organization_deleted, authorization_upserted, authorization_deleted, capture_upserted, card_upserted, card_deleted, refund_upserted, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, tracking_label_event_upserted'
|
4673
|
+
raise 'Cannot serialize an instance of event directly - must use one of the specific types: attribute_upserted, attribute_deleted, catalog_upserted, catalog_deleted, subcatalog_upserted, subcatalog_deleted, catalog_item_upserted, catalog_item_deleted, subcatalog_item_upserted, subcatalog_item_deleted, rate_deleted, rate_upserted, available_promotions_upserted, available_promotions_deleted, experience_deleted, experience_upserted, item_margin_deleted, item_margin_upserted, item_sales_margin_deleted, item_sales_margin_upserted, label_format_deleted, label_format_upserted, order_deleted, order_upserted, order_identifier_deleted, order_identifier_upserted, pricing_deleted, pricing_upserted, tier_upserted, tier_deleted, hs6_code_upserted, hs6_code_deleted, hs10_code_upserted, hs10_code_deleted, item_origin_upserted, item_origin_deleted, harmonized_item_upserted, harmonized_item_deleted, snapshot_upserted, snapshot_deleted, label_upserted, notification_upserted, notification_deleted, localized_item_upserted, localized_item_deleted, localized_item_snapshot, membership_upserted, membership_deleted, organization_upserted, organization_deleted, authorization_upserted, authorization_deleted, capture_upserted, card_upserted, card_deleted, refund_upserted, return_upserted, return_deleted, targeting_item_upserted, targeting_item_deleted, tracking_label_event_upserted'
|
4595
4674
|
end
|
4596
4675
|
|
4597
4676
|
def to_hash
|
@@ -4617,6 +4696,8 @@ module Io
|
|
4617
4696
|
when Types::SUBCATALOG_ITEM_DELETED; SubcatalogItemDeleted.new(hash)
|
4618
4697
|
when Types::RATE_DELETED; RateDeleted.new(hash)
|
4619
4698
|
when Types::RATE_UPSERTED; RateUpserted.new(hash)
|
4699
|
+
when Types::AVAILABLE_PROMOTIONS_UPSERTED; AvailablePromotionsUpserted.new(hash)
|
4700
|
+
when Types::AVAILABLE_PROMOTIONS_DELETED; AvailablePromotionsDeleted.new(hash)
|
4620
4701
|
when Types::EXPERIENCE_DELETED; ExperienceDeleted.new(hash)
|
4621
4702
|
when Types::EXPERIENCE_UPSERTED; ExperienceUpserted.new(hash)
|
4622
4703
|
when Types::ITEM_MARGIN_DELETED; ItemMarginDeleted.new(hash)
|
@@ -5351,6 +5432,128 @@ module Io
|
|
5351
5432
|
|
5352
5433
|
end
|
5353
5434
|
|
5435
|
+
# Represents data for a specific online payment method
|
5436
|
+
class Payment
|
5437
|
+
|
5438
|
+
module Types
|
5439
|
+
PAYMENT_PAYPAL = 'payment_paypal' unless defined?(PAYMENT_PAYPAL)
|
5440
|
+
end
|
5441
|
+
|
5442
|
+
attr_reader :discriminator
|
5443
|
+
|
5444
|
+
def initialize(incoming={})
|
5445
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
5446
|
+
HttpClient::Preconditions.require_keys(opts, [:discriminator], 'Payment')
|
5447
|
+
@discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
|
5448
|
+
end
|
5449
|
+
|
5450
|
+
def subtype_to_hash
|
5451
|
+
raise 'Cannot serialize an instance of payment directly - must use one of the specific types: payment_paypal'
|
5452
|
+
end
|
5453
|
+
|
5454
|
+
def to_hash
|
5455
|
+
subtype_to_hash.merge(:discriminator => @discriminator)
|
5456
|
+
end
|
5457
|
+
|
5458
|
+
def Payment.from_json(hash)
|
5459
|
+
HttpClient::Preconditions.assert_class('hash', hash, Hash)
|
5460
|
+
discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
|
5461
|
+
if discriminator.empty?
|
5462
|
+
raise "Union type[payment] requires a field named 'discriminator'"
|
5463
|
+
end
|
5464
|
+
case discriminator
|
5465
|
+
when Types::PAYMENT_PAYPAL; PaymentPaypal.new(hash)
|
5466
|
+
else PaymentUndefinedType.new(:discriminator => discriminator)
|
5467
|
+
end
|
5468
|
+
end
|
5469
|
+
|
5470
|
+
end
|
5471
|
+
|
5472
|
+
class PaymentUndefinedType < Payment
|
5473
|
+
|
5474
|
+
attr_reader :name
|
5475
|
+
|
5476
|
+
def initialize(incoming={})
|
5477
|
+
super(:discriminator => 'undefined_type')
|
5478
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
5479
|
+
@name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
|
5480
|
+
end
|
5481
|
+
|
5482
|
+
def subtype_to_hash
|
5483
|
+
raise 'Unable to serialize undefined type to json'
|
5484
|
+
end
|
5485
|
+
|
5486
|
+
def copy(incoming={})
|
5487
|
+
raise 'Operation not supported for undefined type'
|
5488
|
+
end
|
5489
|
+
|
5490
|
+
def to_hash
|
5491
|
+
raise 'Operation not supported for undefined type'
|
5492
|
+
end
|
5493
|
+
|
5494
|
+
end
|
5495
|
+
|
5496
|
+
# Represents the data needed to initiate an online payment
|
5497
|
+
class PaymentForm
|
5498
|
+
|
5499
|
+
module Types
|
5500
|
+
MERCHANT_OF_RECORD_PAYMENT_FORM = 'merchant_of_record_payment_form' unless defined?(MERCHANT_OF_RECORD_PAYMENT_FORM)
|
5501
|
+
end
|
5502
|
+
|
5503
|
+
attr_reader :discriminator
|
5504
|
+
|
5505
|
+
def initialize(incoming={})
|
5506
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
5507
|
+
HttpClient::Preconditions.require_keys(opts, [:discriminator], 'PaymentForm')
|
5508
|
+
@discriminator = HttpClient::Preconditions.assert_class('discriminator', opts.delete(:discriminator), String)
|
5509
|
+
end
|
5510
|
+
|
5511
|
+
def subtype_to_hash
|
5512
|
+
raise 'Cannot serialize an instance of payment_form directly - must use one of the specific types: merchant_of_record_payment_form'
|
5513
|
+
end
|
5514
|
+
|
5515
|
+
def to_hash
|
5516
|
+
subtype_to_hash.merge(:discriminator => @discriminator)
|
5517
|
+
end
|
5518
|
+
|
5519
|
+
def PaymentForm.from_json(hash)
|
5520
|
+
HttpClient::Preconditions.assert_class('hash', hash, Hash)
|
5521
|
+
discriminator = HttpClient::Helper.symbolize_keys(hash)[:discriminator].to_s.strip
|
5522
|
+
if discriminator.empty?
|
5523
|
+
raise "Union type[payment_form] requires a field named 'discriminator'"
|
5524
|
+
end
|
5525
|
+
case discriminator
|
5526
|
+
when Types::MERCHANT_OF_RECORD_PAYMENT_FORM; MerchantOfRecordPaymentForm.new(hash)
|
5527
|
+
else PaymentFormUndefinedType.new(:discriminator => discriminator)
|
5528
|
+
end
|
5529
|
+
end
|
5530
|
+
|
5531
|
+
end
|
5532
|
+
|
5533
|
+
class PaymentFormUndefinedType < PaymentForm
|
5534
|
+
|
5535
|
+
attr_reader :name
|
5536
|
+
|
5537
|
+
def initialize(incoming={})
|
5538
|
+
super(:discriminator => 'undefined_type')
|
5539
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
5540
|
+
@name = HttpClient::Preconditions.assert_class('name', opts.delete(:discriminator), String)
|
5541
|
+
end
|
5542
|
+
|
5543
|
+
def subtype_to_hash
|
5544
|
+
raise 'Unable to serialize undefined type to json'
|
5545
|
+
end
|
5546
|
+
|
5547
|
+
def copy(incoming={})
|
5548
|
+
raise 'Operation not supported for undefined type'
|
5549
|
+
end
|
5550
|
+
|
5551
|
+
def to_hash
|
5552
|
+
raise 'Operation not supported for undefined type'
|
5553
|
+
end
|
5554
|
+
|
5555
|
+
end
|
5556
|
+
|
5354
5557
|
class Session
|
5355
5558
|
|
5356
5559
|
module Types
|
@@ -6864,7 +7067,7 @@ module Io
|
|
6864
7067
|
end
|
6865
7068
|
|
6866
7069
|
def EventType.ALL
|
6867
|
-
@@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.rate_deleted, EventType.rate_upserted, EventType.experience_deleted, EventType.experience_upserted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.item_sales_margin_deleted, EventType.item_sales_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.pricing_deleted, EventType.pricing_upserted, EventType.tier_upserted, EventType.tier_deleted, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.localized_item_upserted, EventType.localized_item_deleted, EventType.localized_item_snapshot, EventType.membership_upserted, EventType.membership_deleted, EventType.organization_upserted, EventType.organization_deleted, EventType.authorization_upserted, EventType.authorization_deleted, EventType.capture_upserted, EventType.card_upserted, EventType.card_deleted, EventType.refund_upserted, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.tracking_label_event_upserted]
|
7070
|
+
@@all ||= [EventType.attribute_upserted, EventType.attribute_deleted, EventType.catalog_upserted, EventType.catalog_deleted, EventType.subcatalog_upserted, EventType.subcatalog_deleted, EventType.catalog_item_upserted, EventType.catalog_item_deleted, EventType.subcatalog_item_upserted, EventType.subcatalog_item_deleted, EventType.rate_deleted, EventType.rate_upserted, EventType.available_promotions_upserted, EventType.available_promotions_deleted, EventType.experience_deleted, EventType.experience_upserted, EventType.item_margin_deleted, EventType.item_margin_upserted, EventType.item_sales_margin_deleted, EventType.item_sales_margin_upserted, EventType.label_format_deleted, EventType.label_format_upserted, EventType.order_deleted, EventType.order_upserted, EventType.order_identifier_deleted, EventType.order_identifier_upserted, EventType.pricing_deleted, EventType.pricing_upserted, EventType.tier_upserted, EventType.tier_deleted, EventType.hs6_code_upserted, EventType.hs6_code_deleted, EventType.hs10_code_upserted, EventType.hs10_code_deleted, EventType.item_origin_upserted, EventType.item_origin_deleted, EventType.harmonized_item_upserted, EventType.harmonized_item_deleted, EventType.snapshot_upserted, EventType.snapshot_deleted, EventType.label_upserted, EventType.notification_upserted, EventType.notification_deleted, EventType.localized_item_upserted, EventType.localized_item_deleted, EventType.localized_item_snapshot, EventType.membership_upserted, EventType.membership_deleted, EventType.organization_upserted, EventType.organization_deleted, EventType.authorization_upserted, EventType.authorization_deleted, EventType.capture_upserted, EventType.card_upserted, EventType.card_deleted, EventType.refund_upserted, EventType.return_upserted, EventType.return_deleted, EventType.targeting_item_upserted, EventType.targeting_item_deleted, EventType.tracking_label_event_upserted]
|
6868
7071
|
end
|
6869
7072
|
|
6870
7073
|
def EventType.attribute_upserted
|
@@ -6915,6 +7118,14 @@ module Io
|
|
6915
7118
|
@@_rate_upserted ||= EventType.new('rate_upserted')
|
6916
7119
|
end
|
6917
7120
|
|
7121
|
+
def EventType.available_promotions_upserted
|
7122
|
+
@@_available_promotions_upserted ||= EventType.new('available_promotions_upserted')
|
7123
|
+
end
|
7124
|
+
|
7125
|
+
def EventType.available_promotions_deleted
|
7126
|
+
@@_available_promotions_deleted ||= EventType.new('available_promotions_deleted')
|
7127
|
+
end
|
7128
|
+
|
6918
7129
|
def EventType.experience_deleted
|
6919
7130
|
@@_experience_deleted ||= EventType.new('experience_deleted')
|
6920
7131
|
end
|
@@ -7949,6 +8160,78 @@ module Io
|
|
7949
8160
|
|
7950
8161
|
end
|
7951
8162
|
|
8163
|
+
class PaymentErrorCode
|
8164
|
+
|
8165
|
+
attr_reader :value
|
8166
|
+
|
8167
|
+
def initialize(value)
|
8168
|
+
@value = HttpClient::Preconditions.assert_class('value', value, String)
|
8169
|
+
end
|
8170
|
+
|
8171
|
+
# Returns the instance of PaymentErrorCode for this value, creating a new instance for an unknown value
|
8172
|
+
def PaymentErrorCode.apply(value)
|
8173
|
+
if value.instance_of?(PaymentErrorCode)
|
8174
|
+
value
|
8175
|
+
else
|
8176
|
+
HttpClient::Preconditions.assert_class_or_nil('value', value, String)
|
8177
|
+
value.nil? ? nil : (from_string(value) || PaymentErrorCode.new(value))
|
8178
|
+
end
|
8179
|
+
end
|
8180
|
+
|
8181
|
+
# Returns the instance of PaymentErrorCode for this value, or nil if not found
|
8182
|
+
def PaymentErrorCode.from_string(value)
|
8183
|
+
HttpClient::Preconditions.assert_class('value', value, String)
|
8184
|
+
PaymentErrorCode.ALL.find { |v| v.value == value }
|
8185
|
+
end
|
8186
|
+
|
8187
|
+
def PaymentErrorCode.ALL
|
8188
|
+
@@all ||= [PaymentErrorCode.invalid_amount, PaymentErrorCode.invalid_currency, PaymentErrorCode.invalid_method, PaymentErrorCode.invalid_order, PaymentErrorCode.invalid_customer, PaymentErrorCode.invalid_destination, PaymentErrorCode.unknown]
|
8189
|
+
end
|
8190
|
+
|
8191
|
+
# Amount is not valid (e.g. for merchant of record payments, the amount
|
8192
|
+
# specified must match the order). This typically is handled by refreshing the
|
8193
|
+
# order amount and reconfirming with the user as something has changed.
|
8194
|
+
def PaymentErrorCode.invalid_amount
|
8195
|
+
@@_invalid_amount ||= PaymentErrorCode.new('invalid_amount')
|
8196
|
+
end
|
8197
|
+
|
8198
|
+
# Currency is either not known or invalid (e.g. for merchant of record payments,
|
8199
|
+
# the currency specified must match the order).
|
8200
|
+
def PaymentErrorCode.invalid_currency
|
8201
|
+
@@_invalid_currency ||= PaymentErrorCode.new('invalid_currency')
|
8202
|
+
end
|
8203
|
+
|
8204
|
+
# Invalid payment method
|
8205
|
+
def PaymentErrorCode.invalid_method
|
8206
|
+
@@_invalid_method ||= PaymentErrorCode.new('invalid_method')
|
8207
|
+
end
|
8208
|
+
|
8209
|
+
# The specified order number was not found
|
8210
|
+
def PaymentErrorCode.invalid_order
|
8211
|
+
@@_invalid_order ||= PaymentErrorCode.new('invalid_order')
|
8212
|
+
end
|
8213
|
+
|
8214
|
+
# Customer information is invalid (e.g. email specified but not a valid email)
|
8215
|
+
def PaymentErrorCode.invalid_customer
|
8216
|
+
@@_invalid_customer ||= PaymentErrorCode.new('invalid_customer')
|
8217
|
+
end
|
8218
|
+
|
8219
|
+
# Destination/shipping address is not valid
|
8220
|
+
def PaymentErrorCode.invalid_destination
|
8221
|
+
@@_invalid_destination ||= PaymentErrorCode.new('invalid_destination')
|
8222
|
+
end
|
8223
|
+
|
8224
|
+
# Failed due to another reason (details not known)
|
8225
|
+
def PaymentErrorCode.unknown
|
8226
|
+
@@_unknown ||= PaymentErrorCode.new('unknown')
|
8227
|
+
end
|
8228
|
+
|
8229
|
+
def to_hash
|
8230
|
+
value
|
8231
|
+
end
|
8232
|
+
|
8233
|
+
end
|
8234
|
+
|
7952
8235
|
class PaymentMethodType
|
7953
8236
|
|
7954
8237
|
attr_reader :value
|
@@ -10320,6 +10603,74 @@ module Io
|
|
10320
10603
|
|
10321
10604
|
end
|
10322
10605
|
|
10606
|
+
class AvailablePromotionsDeleted < Event
|
10607
|
+
|
10608
|
+
attr_reader :event_id, :timestamp, :organization, :experience_key
|
10609
|
+
|
10610
|
+
def initialize(incoming={})
|
10611
|
+
super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_DELETED)
|
10612
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
10613
|
+
HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :experience_key], 'AvailablePromotionsDeleted')
|
10614
|
+
@event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
|
10615
|
+
@timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
|
10616
|
+
@organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
|
10617
|
+
@experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
|
10618
|
+
end
|
10619
|
+
|
10620
|
+
def to_json
|
10621
|
+
JSON.dump(to_hash)
|
10622
|
+
end
|
10623
|
+
|
10624
|
+
def copy(incoming={})
|
10625
|
+
AvailablePromotionsDeleted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
10626
|
+
end
|
10627
|
+
|
10628
|
+
def subtype_to_hash
|
10629
|
+
{
|
10630
|
+
:event_id => event_id,
|
10631
|
+
:timestamp => timestamp,
|
10632
|
+
:organization => organization,
|
10633
|
+
:experience_key => experience_key
|
10634
|
+
}
|
10635
|
+
end
|
10636
|
+
|
10637
|
+
end
|
10638
|
+
|
10639
|
+
class AvailablePromotionsUpserted < Event
|
10640
|
+
|
10641
|
+
attr_reader :event_id, :timestamp, :organization, :experience_key, :available_promotions
|
10642
|
+
|
10643
|
+
def initialize(incoming={})
|
10644
|
+
super(:discriminator => Event::Types::AVAILABLE_PROMOTIONS_UPSERTED)
|
10645
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
10646
|
+
HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :experience_key, :available_promotions], 'AvailablePromotionsUpserted')
|
10647
|
+
@event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
|
10648
|
+
@timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
|
10649
|
+
@organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
|
10650
|
+
@experience_key = HttpClient::Preconditions.assert_class('experience_key', opts.delete(:experience_key), String)
|
10651
|
+
@available_promotions = HttpClient::Preconditions.assert_class('available_promotions', opts.delete(:available_promotions), Array).map { |v| HttpClient::Preconditions.assert_class('available_promotions', HttpClient::Helper.to_object(v), Hash) }
|
10652
|
+
end
|
10653
|
+
|
10654
|
+
def to_json
|
10655
|
+
JSON.dump(to_hash)
|
10656
|
+
end
|
10657
|
+
|
10658
|
+
def copy(incoming={})
|
10659
|
+
AvailablePromotionsUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
10660
|
+
end
|
10661
|
+
|
10662
|
+
def subtype_to_hash
|
10663
|
+
{
|
10664
|
+
:event_id => event_id,
|
10665
|
+
:timestamp => timestamp,
|
10666
|
+
:organization => organization,
|
10667
|
+
:experience_key => experience_key,
|
10668
|
+
:available_promotions => available_promotions
|
10669
|
+
}
|
10670
|
+
end
|
10671
|
+
|
10672
|
+
end
|
10673
|
+
|
10323
10674
|
# Representation of a service level available at a center and the special pickup
|
10324
10675
|
# times during the week. If pickup schedules are not provided, assumption is
|
10325
10676
|
# once a day during the weekdays.
|
@@ -12344,47 +12695,6 @@ module Io
|
|
12344
12695
|
|
12345
12696
|
end
|
12346
12697
|
|
12347
|
-
class DirectOnlinePaymentForm < AuthorizationForm
|
12348
|
-
|
12349
|
-
attr_reader :method, :amount, :currency, :customer, :key, :attributes, :destination, :ip
|
12350
|
-
|
12351
|
-
def initialize(incoming={})
|
12352
|
-
super(:discriminator => AuthorizationForm::Types::DIRECT_ONLINE_PAYMENT_FORM)
|
12353
|
-
opts = HttpClient::Helper.symbolize_keys(incoming)
|
12354
|
-
HttpClient::Preconditions.require_keys(opts, [:method, :amount, :currency], 'DirectOnlinePaymentForm')
|
12355
|
-
@method = HttpClient::Preconditions.assert_class('method', opts.delete(:method), String)
|
12356
|
-
@amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
|
12357
|
-
@currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
|
12358
|
-
@customer = (x = opts.delete(:customer); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x)))
|
12359
|
-
@key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
|
12360
|
-
@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 })
|
12361
|
-
@destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
|
12362
|
-
@ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
|
12363
|
-
end
|
12364
|
-
|
12365
|
-
def to_json
|
12366
|
-
JSON.dump(to_hash)
|
12367
|
-
end
|
12368
|
-
|
12369
|
-
def copy(incoming={})
|
12370
|
-
DirectOnlinePaymentForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
12371
|
-
end
|
12372
|
-
|
12373
|
-
def subtype_to_hash
|
12374
|
-
{
|
12375
|
-
:method => method,
|
12376
|
-
:amount => amount,
|
12377
|
-
:currency => currency,
|
12378
|
-
:customer => customer.nil? ? nil : customer.to_hash,
|
12379
|
-
:key => key,
|
12380
|
-
:attributes => attributes.nil? ? nil : attributes,
|
12381
|
-
:destination => destination.nil? ? nil : destination.to_hash,
|
12382
|
-
:ip => ip
|
12383
|
-
}
|
12384
|
-
end
|
12385
|
-
|
12386
|
-
end
|
12387
|
-
|
12388
12698
|
# Represents a duration of time.
|
12389
12699
|
class Duration
|
12390
12700
|
|
@@ -12897,6 +13207,64 @@ module Io
|
|
12897
13207
|
|
12898
13208
|
end
|
12899
13209
|
|
13210
|
+
# Represents a single experiment / test (e.g. for an incremental rollout or AB
|
13211
|
+
# Test)
|
13212
|
+
class Experiment
|
13213
|
+
|
13214
|
+
attr_reader :id, :key
|
13215
|
+
|
13216
|
+
def initialize(incoming={})
|
13217
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
13218
|
+
HttpClient::Preconditions.require_keys(opts, [:id, :key], 'Experiment')
|
13219
|
+
@id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
|
13220
|
+
@key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
|
13221
|
+
end
|
13222
|
+
|
13223
|
+
def to_json
|
13224
|
+
JSON.dump(to_hash)
|
13225
|
+
end
|
13226
|
+
|
13227
|
+
def copy(incoming={})
|
13228
|
+
Experiment.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
13229
|
+
end
|
13230
|
+
|
13231
|
+
def to_hash
|
13232
|
+
{
|
13233
|
+
:id => id,
|
13234
|
+
:key => key
|
13235
|
+
}
|
13236
|
+
end
|
13237
|
+
|
13238
|
+
end
|
13239
|
+
|
13240
|
+
# Represents a single instance of an experiment (e.g. page request) resulting in
|
13241
|
+
# a decision as to the status of a given experiment
|
13242
|
+
class ExperimentStatus
|
13243
|
+
|
13244
|
+
attr_reader :enabled
|
13245
|
+
|
13246
|
+
def initialize(incoming={})
|
13247
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
13248
|
+
HttpClient::Preconditions.require_keys(opts, [:enabled], 'ExperimentStatus')
|
13249
|
+
@enabled = HttpClient::Preconditions.assert_boolean('enabled', opts.delete(:enabled))
|
13250
|
+
end
|
13251
|
+
|
13252
|
+
def to_json
|
13253
|
+
JSON.dump(to_hash)
|
13254
|
+
end
|
13255
|
+
|
13256
|
+
def copy(incoming={})
|
13257
|
+
ExperimentStatus.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
13258
|
+
end
|
13259
|
+
|
13260
|
+
def to_hash
|
13261
|
+
{
|
13262
|
+
:enabled => enabled
|
13263
|
+
}
|
13264
|
+
end
|
13265
|
+
|
13266
|
+
end
|
13267
|
+
|
12900
13268
|
# The month and year at which a card expires
|
12901
13269
|
class Expiration
|
12902
13270
|
|
@@ -16165,14 +16533,15 @@ module Io
|
|
16165
16533
|
# will be presented here
|
16166
16534
|
class LocalSession
|
16167
16535
|
|
16168
|
-
attr_reader :country, :currency, :language, :experience
|
16536
|
+
attr_reader :country, :currency, :language, :locale, :experience
|
16169
16537
|
|
16170
16538
|
def initialize(incoming={})
|
16171
16539
|
opts = HttpClient::Helper.symbolize_keys(incoming)
|
16172
|
-
HttpClient::Preconditions.require_keys(opts, [:country, :currency, :language, :experience], 'LocalSession')
|
16540
|
+
HttpClient::Preconditions.require_keys(opts, [:country, :currency, :language, :locale, :experience], 'LocalSession')
|
16173
16541
|
@country = (x = opts.delete(:country); x.is_a?(::Io::Flow::V0::Models::Country) ? x : ::Io::Flow::V0::Models::Country.new(x))
|
16174
16542
|
@currency = (x = opts.delete(:currency); x.is_a?(::Io::Flow::V0::Models::Currency) ? x : ::Io::Flow::V0::Models::Currency.new(x))
|
16175
16543
|
@language = (x = opts.delete(:language); x.is_a?(::Io::Flow::V0::Models::Language) ? x : ::Io::Flow::V0::Models::Language.new(x))
|
16544
|
+
@locale = (x = opts.delete(:locale); x.is_a?(::Io::Flow::V0::Models::Locale) ? x : ::Io::Flow::V0::Models::Locale.new(x))
|
16176
16545
|
@experience = (x = opts.delete(:experience); x.is_a?(::Io::Flow::V0::Models::ExperienceKeyReference) ? x : ::Io::Flow::V0::Models::ExperienceKeyReference.new(x))
|
16177
16546
|
end
|
16178
16547
|
|
@@ -16189,6 +16558,7 @@ module Io
|
|
16189
16558
|
:country => country.to_hash,
|
16190
16559
|
:currency => currency.to_hash,
|
16191
16560
|
:language => language.to_hash,
|
16561
|
+
:locale => locale.to_hash,
|
16192
16562
|
:experience => experience.to_hash
|
16193
16563
|
}
|
16194
16564
|
end
|
@@ -16897,21 +17267,19 @@ module Io
|
|
16897
17267
|
|
16898
17268
|
end
|
16899
17269
|
|
16900
|
-
|
17270
|
+
# Creates an online payment
|
17271
|
+
class MerchantOfRecordPaymentForm < PaymentForm
|
16901
17272
|
|
16902
|
-
attr_reader :method, :order_number, :amount, :currency
|
17273
|
+
attr_reader :method, :order_number, :amount, :currency
|
16903
17274
|
|
16904
17275
|
def initialize(incoming={})
|
16905
|
-
super(:discriminator =>
|
17276
|
+
super(:discriminator => PaymentForm::Types::MERCHANT_OF_RECORD_PAYMENT_FORM)
|
16906
17277
|
opts = HttpClient::Helper.symbolize_keys(incoming)
|
16907
|
-
HttpClient::Preconditions.require_keys(opts, [:method, :order_number, :amount, :currency], '
|
17278
|
+
HttpClient::Preconditions.require_keys(opts, [:method, :order_number, :amount, :currency], 'MerchantOfRecordPaymentForm')
|
16908
17279
|
@method = HttpClient::Preconditions.assert_class('method', opts.delete(:method), String)
|
16909
17280
|
@order_number = HttpClient::Preconditions.assert_class('order_number', opts.delete(:order_number), String)
|
16910
17281
|
@amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
|
16911
17282
|
@currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
|
16912
|
-
@key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
|
16913
|
-
@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 })
|
16914
|
-
@ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
|
16915
17283
|
end
|
16916
17284
|
|
16917
17285
|
def to_json
|
@@ -16919,7 +17287,7 @@ module Io
|
|
16919
17287
|
end
|
16920
17288
|
|
16921
17289
|
def copy(incoming={})
|
16922
|
-
|
17290
|
+
MerchantOfRecordPaymentForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
16923
17291
|
end
|
16924
17292
|
|
16925
17293
|
def subtype_to_hash
|
@@ -16927,10 +17295,7 @@ module Io
|
|
16927
17295
|
:method => method,
|
16928
17296
|
:order_number => order_number,
|
16929
17297
|
:amount => amount,
|
16930
|
-
:currency => currency
|
16931
|
-
:key => key,
|
16932
|
-
:attributes => attributes.nil? ? nil : attributes,
|
16933
|
-
:ip => ip
|
17298
|
+
:currency => currency
|
16934
17299
|
}
|
16935
17300
|
end
|
16936
17301
|
|
@@ -17119,15 +17484,15 @@ module Io
|
|
17119
17484
|
|
17120
17485
|
class OnlineAuthorization < Authorization
|
17121
17486
|
|
17122
|
-
attr_reader :id, :key, :
|
17487
|
+
attr_reader :id, :key, :payment, :amount, :currency, :customer, :attributes, :destination, :order, :ip, :created_at
|
17123
17488
|
|
17124
17489
|
def initialize(incoming={})
|
17125
17490
|
super(:discriminator => Authorization::Types::ONLINE_AUTHORIZATION)
|
17126
17491
|
opts = HttpClient::Helper.symbolize_keys(incoming)
|
17127
|
-
HttpClient::Preconditions.require_keys(opts, [:id, :key, :
|
17492
|
+
HttpClient::Preconditions.require_keys(opts, [:id, :key, :payment, :amount, :currency, :customer, :attributes, :created_at], 'OnlineAuthorization')
|
17128
17493
|
@id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
|
17129
17494
|
@key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
|
17130
|
-
@
|
17495
|
+
@payment = (x = opts.delete(:payment); x.is_a?(::Io::Flow::V0::Models::PaymentReference) ? x : ::Io::Flow::V0::Models::PaymentReference.new(x))
|
17131
17496
|
@amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
|
17132
17497
|
@currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
|
17133
17498
|
@customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
|
@@ -17135,7 +17500,6 @@ module Io
|
|
17135
17500
|
@destination = (x = opts.delete(:destination); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Address) ? x : ::Io::Flow::V0::Models::Address.new(x)))
|
17136
17501
|
@order = (x = opts.delete(:order); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationOrderReference) ? x : ::Io::Flow::V0::Models::AuthorizationOrderReference.new(x)))
|
17137
17502
|
@ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
|
17138
|
-
@result = (x = opts.delete(:result); x.is_a?(::Io::Flow::V0::Models::AuthorizationResult) ? x : ::Io::Flow::V0::Models::AuthorizationResult.new(x))
|
17139
17503
|
@created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
|
17140
17504
|
end
|
17141
17505
|
|
@@ -17151,7 +17515,7 @@ module Io
|
|
17151
17515
|
{
|
17152
17516
|
:id => id,
|
17153
17517
|
:key => key,
|
17154
|
-
:
|
17518
|
+
:payment => payment.to_hash,
|
17155
17519
|
:amount => amount,
|
17156
17520
|
:currency => currency,
|
17157
17521
|
:customer => customer.to_hash,
|
@@ -17159,7 +17523,6 @@ module Io
|
|
17159
17523
|
:destination => destination.nil? ? nil : destination.to_hash,
|
17160
17524
|
:order => order.nil? ? nil : order.to_hash,
|
17161
17525
|
:ip => ip,
|
17162
|
-
:result => result.to_hash,
|
17163
17526
|
:created_at => created_at
|
17164
17527
|
}
|
17165
17528
|
end
|
@@ -18778,6 +19141,37 @@ module Io
|
|
18778
19141
|
|
18779
19142
|
end
|
18780
19143
|
|
19144
|
+
# Details for why a payment failed
|
19145
|
+
class PaymentError
|
19146
|
+
|
19147
|
+
attr_reader :code, :messages, :codes
|
19148
|
+
|
19149
|
+
def initialize(incoming={})
|
19150
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19151
|
+
HttpClient::Preconditions.require_keys(opts, [:messages, :codes], 'PaymentError')
|
19152
|
+
@code = HttpClient::Preconditions.assert_class('code', (x = opts.delete(:code); x.nil? ? "payment_error" : x), String)
|
19153
|
+
@messages = HttpClient::Preconditions.assert_class('messages', opts.delete(:messages), Array).map { |v| HttpClient::Preconditions.assert_class('messages', v, String) }
|
19154
|
+
@codes = HttpClient::Preconditions.assert_class('codes', opts.delete(:codes), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::PaymentErrorCode) ? x : ::Io::Flow::V0::Models::PaymentErrorCode.apply(x)) }
|
19155
|
+
end
|
19156
|
+
|
19157
|
+
def to_json
|
19158
|
+
JSON.dump(to_hash)
|
19159
|
+
end
|
19160
|
+
|
19161
|
+
def copy(incoming={})
|
19162
|
+
PaymentError.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19163
|
+
end
|
19164
|
+
|
19165
|
+
def to_hash
|
19166
|
+
{
|
19167
|
+
:code => code,
|
19168
|
+
:messages => messages,
|
19169
|
+
:codes => codes.map { |o| o.value }
|
19170
|
+
}
|
19171
|
+
end
|
19172
|
+
|
19173
|
+
end
|
19174
|
+
|
18781
19175
|
# Represents a single payment method - e.g VISA or Paypal - and any associated
|
18782
19176
|
# metadata required for processing
|
18783
19177
|
class PaymentMethod
|
@@ -18874,6 +19268,163 @@ module Io
|
|
18874
19268
|
|
18875
19269
|
end
|
18876
19270
|
|
19271
|
+
# Represents on line payment
|
19272
|
+
class PaymentPaypal < Payment
|
19273
|
+
|
19274
|
+
attr_reader :id, :order, :amount, :currency, :paypal
|
19275
|
+
|
19276
|
+
def initialize(incoming={})
|
19277
|
+
super(:discriminator => Payment::Types::PAYMENT_PAYPAL)
|
19278
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19279
|
+
HttpClient::Preconditions.require_keys(opts, [:id, :amount, :currency, :paypal], 'PaymentPaypal')
|
19280
|
+
@id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
|
19281
|
+
@order = (x = opts.delete(:order); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::AuthorizationOrderReference) ? x : ::Io::Flow::V0::Models::AuthorizationOrderReference.new(x)))
|
19282
|
+
@amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
|
19283
|
+
@currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
|
19284
|
+
@paypal = (x = opts.delete(:paypal); x.is_a?(::Io::Flow::V0::Models::PaymentPaypalData) ? x : ::Io::Flow::V0::Models::PaymentPaypalData.new(x))
|
19285
|
+
end
|
19286
|
+
|
19287
|
+
def to_json
|
19288
|
+
JSON.dump(to_hash)
|
19289
|
+
end
|
19290
|
+
|
19291
|
+
def copy(incoming={})
|
19292
|
+
PaymentPaypal.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19293
|
+
end
|
19294
|
+
|
19295
|
+
def subtype_to_hash
|
19296
|
+
{
|
19297
|
+
:id => id,
|
19298
|
+
:order => order.nil? ? nil : order.to_hash,
|
19299
|
+
:amount => amount,
|
19300
|
+
:currency => currency,
|
19301
|
+
:paypal => paypal.to_hash
|
19302
|
+
}
|
19303
|
+
end
|
19304
|
+
|
19305
|
+
end
|
19306
|
+
|
19307
|
+
# Represents on line payment
|
19308
|
+
class PaymentPaypalData
|
19309
|
+
|
19310
|
+
attr_reader :payment_id
|
19311
|
+
|
19312
|
+
def initialize(incoming={})
|
19313
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19314
|
+
HttpClient::Preconditions.require_keys(opts, [:payment_id], 'PaymentPaypalData')
|
19315
|
+
@payment_id = HttpClient::Preconditions.assert_class('payment_id', opts.delete(:payment_id), String)
|
19316
|
+
end
|
19317
|
+
|
19318
|
+
def to_json
|
19319
|
+
JSON.dump(to_hash)
|
19320
|
+
end
|
19321
|
+
|
19322
|
+
def copy(incoming={})
|
19323
|
+
PaymentPaypalData.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19324
|
+
end
|
19325
|
+
|
19326
|
+
def to_hash
|
19327
|
+
{
|
19328
|
+
:payment_id => payment_id
|
19329
|
+
}
|
19330
|
+
end
|
19331
|
+
|
19332
|
+
end
|
19333
|
+
|
19334
|
+
class PaymentReference
|
19335
|
+
|
19336
|
+
attr_reader :id
|
19337
|
+
|
19338
|
+
def initialize(incoming={})
|
19339
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19340
|
+
HttpClient::Preconditions.require_keys(opts, [:id], 'PaymentReference')
|
19341
|
+
@id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
|
19342
|
+
end
|
19343
|
+
|
19344
|
+
def to_json
|
19345
|
+
JSON.dump(to_hash)
|
19346
|
+
end
|
19347
|
+
|
19348
|
+
def copy(incoming={})
|
19349
|
+
PaymentReference.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19350
|
+
end
|
19351
|
+
|
19352
|
+
def to_hash
|
19353
|
+
{
|
19354
|
+
:id => id
|
19355
|
+
}
|
19356
|
+
end
|
19357
|
+
|
19358
|
+
end
|
19359
|
+
|
19360
|
+
class PaymentVersion
|
19361
|
+
|
19362
|
+
attr_reader :id, :timestamp, :type, :payment
|
19363
|
+
|
19364
|
+
def initialize(incoming={})
|
19365
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19366
|
+
HttpClient::Preconditions.require_keys(opts, [:id, :timestamp, :type, :payment], 'PaymentVersion')
|
19367
|
+
@id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
|
19368
|
+
@timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
|
19369
|
+
@type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::ChangeType) ? x : ::Io::Flow::V0::Models::ChangeType.apply(x))
|
19370
|
+
@payment = (x = opts.delete(:payment); x.is_a?(::Io::Flow::V0::Models::Payment) ? x : ::Io::Flow::V0::Models::Payment.from_json(x))
|
19371
|
+
end
|
19372
|
+
|
19373
|
+
def to_json
|
19374
|
+
JSON.dump(to_hash)
|
19375
|
+
end
|
19376
|
+
|
19377
|
+
def copy(incoming={})
|
19378
|
+
PaymentVersion.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19379
|
+
end
|
19380
|
+
|
19381
|
+
def to_hash
|
19382
|
+
{
|
19383
|
+
:id => id,
|
19384
|
+
:timestamp => timestamp,
|
19385
|
+
:type => type.value,
|
19386
|
+
:payment => payment.to_hash
|
19387
|
+
}
|
19388
|
+
end
|
19389
|
+
|
19390
|
+
end
|
19391
|
+
|
19392
|
+
# Executes the Paypal payment
|
19393
|
+
class PaypalAuthorizationForm < AuthorizationForm
|
19394
|
+
|
19395
|
+
attr_reader :paypal_payment_id, :paypal_buyer_id, :key, :attributes, :ip
|
19396
|
+
|
19397
|
+
def initialize(incoming={})
|
19398
|
+
super(:discriminator => AuthorizationForm::Types::PAYPAL_AUTHORIZATION_FORM)
|
19399
|
+
opts = HttpClient::Helper.symbolize_keys(incoming)
|
19400
|
+
HttpClient::Preconditions.require_keys(opts, [:paypal_payment_id, :paypal_buyer_id], 'PaypalAuthorizationForm')
|
19401
|
+
@paypal_payment_id = HttpClient::Preconditions.assert_class('paypal_payment_id', opts.delete(:paypal_payment_id), String)
|
19402
|
+
@paypal_buyer_id = HttpClient::Preconditions.assert_class('paypal_buyer_id', opts.delete(:paypal_buyer_id), String)
|
19403
|
+
@key = (x = opts.delete(:key); x.nil? ? nil : HttpClient::Preconditions.assert_class('key', x, String))
|
19404
|
+
@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 })
|
19405
|
+
@ip = (x = opts.delete(:ip); x.nil? ? nil : HttpClient::Preconditions.assert_class('ip', x, String))
|
19406
|
+
end
|
19407
|
+
|
19408
|
+
def to_json
|
19409
|
+
JSON.dump(to_hash)
|
19410
|
+
end
|
19411
|
+
|
19412
|
+
def copy(incoming={})
|
19413
|
+
PaypalAuthorizationForm.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
|
19414
|
+
end
|
19415
|
+
|
19416
|
+
def subtype_to_hash
|
19417
|
+
{
|
19418
|
+
:paypal_payment_id => paypal_payment_id,
|
19419
|
+
:paypal_buyer_id => paypal_buyer_id,
|
19420
|
+
:key => key,
|
19421
|
+
:attributes => attributes.nil? ? nil : attributes,
|
19422
|
+
:ip => ip
|
19423
|
+
}
|
19424
|
+
end
|
19425
|
+
|
19426
|
+
end
|
19427
|
+
|
18877
19428
|
# Rule outcome where shipping surfaced in quote is actual cost plus a predefined
|
18878
19429
|
# margin percentage
|
18879
19430
|
class PercentMargin < TierRuleOutcome
|
@@ -20755,7 +21306,7 @@ module Io
|
|
20755
21306
|
|
20756
21307
|
class SessionForm
|
20757
21308
|
|
20758
|
-
attr_reader :ip, :experience, :country, :currency, :language
|
21309
|
+
attr_reader :ip, :experience, :country, :currency, :language, :locale
|
20759
21310
|
|
20760
21311
|
def initialize(incoming={})
|
20761
21312
|
opts = HttpClient::Helper.symbolize_keys(incoming)
|
@@ -20764,6 +21315,7 @@ module Io
|
|
20764
21315
|
@country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
|
20765
21316
|
@currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
|
20766
21317
|
@language = (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String))
|
21318
|
+
@locale = (x = opts.delete(:locale); x.nil? ? nil : HttpClient::Preconditions.assert_class('locale', x, String))
|
20767
21319
|
end
|
20768
21320
|
|
20769
21321
|
def to_json
|
@@ -20780,7 +21332,8 @@ module Io
|
|
20780
21332
|
:experience => experience,
|
20781
21333
|
:country => country,
|
20782
21334
|
:currency => currency,
|
20783
|
-
:language => language
|
21335
|
+
:language => language,
|
21336
|
+
:locale => locale
|
20784
21337
|
}
|
20785
21338
|
end
|
20786
21339
|
|
@@ -20788,7 +21341,7 @@ module Io
|
|
20788
21341
|
|
20789
21342
|
class SessionPutForm
|
20790
21343
|
|
20791
|
-
attr_reader :experience, :country, :currency, :language
|
21344
|
+
attr_reader :experience, :country, :currency, :language, :locale
|
20792
21345
|
|
20793
21346
|
def initialize(incoming={})
|
20794
21347
|
opts = HttpClient::Helper.symbolize_keys(incoming)
|
@@ -20796,6 +21349,7 @@ module Io
|
|
20796
21349
|
@country = (x = opts.delete(:country); x.nil? ? nil : HttpClient::Preconditions.assert_class('country', x, String))
|
20797
21350
|
@currency = (x = opts.delete(:currency); x.nil? ? nil : HttpClient::Preconditions.assert_class('currency', x, String))
|
20798
21351
|
@language = (x = opts.delete(:language); x.nil? ? nil : HttpClient::Preconditions.assert_class('language', x, String))
|
21352
|
+
@locale = (x = opts.delete(:locale); x.nil? ? nil : HttpClient::Preconditions.assert_class('locale', x, String))
|
20799
21353
|
end
|
20800
21354
|
|
20801
21355
|
def to_json
|
@@ -20811,7 +21365,8 @@ module Io
|
|
20811
21365
|
:experience => experience,
|
20812
21366
|
:country => country,
|
20813
21367
|
:currency => currency,
|
20814
|
-
:language => language
|
21368
|
+
:language => language,
|
21369
|
+
:locale => locale
|
20815
21370
|
}
|
20816
21371
|
end
|
20817
21372
|
|
@@ -21130,7 +21685,7 @@ module Io
|
|
21130
21685
|
|
21131
21686
|
class ShopifySession < Session
|
21132
21687
|
|
21133
|
-
attr_reader :id, :organization, :attributes, :local, :shop, :cart
|
21688
|
+
attr_reader :id, :organization, :attributes, :local, :shop, :cart, :experiments
|
21134
21689
|
|
21135
21690
|
def initialize(incoming={})
|
21136
21691
|
super(:discriminator => Session::Types::SHOPIFY_SESSION)
|
@@ -21142,6 +21697,7 @@ module Io
|
|
21142
21697
|
@local = (x = opts.delete(:local); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::LocalSession) ? x : ::Io::Flow::V0::Models::LocalSession.new(x)))
|
21143
21698
|
@shop = HttpClient::Preconditions.assert_class('shop', opts.delete(:shop), String)
|
21144
21699
|
@cart = (x = opts.delete(:cart); x.is_a?(::Io::Flow::V0::Models::CartReference) ? x : ::Io::Flow::V0::Models::CartReference.new(x))
|
21700
|
+
@experiments = HttpClient::Preconditions.assert_class('experiments', (x = opts.delete(:experiments); x.nil? ? {} : x), Hash).inject({}) { |h, d| h[d[0]] = (x = d[1]; x.is_a?(::Io::Flow::V0::Models::ExperimentStatus) ? x : ::Io::Flow::V0::Models::ExperimentStatus.new(x)); h }
|
21145
21701
|
end
|
21146
21702
|
|
21147
21703
|
def to_json
|
@@ -21159,7 +21715,8 @@ module Io
|
|
21159
21715
|
:attributes => attributes,
|
21160
21716
|
:local => local.nil? ? nil : local.to_hash,
|
21161
21717
|
:shop => shop,
|
21162
|
-
:cart => cart.to_hash
|
21718
|
+
:cart => cart.to_hash,
|
21719
|
+
:experiments => experiments.inject({}) { |hash, o| hash[o[0]] = o[1].nil? ? nil : o[1].to_hash; hash }
|
21163
21720
|
}
|
21164
21721
|
end
|
21165
21722
|
|