chargebee 2.10.1 → 2.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +75 -0
- data/LICENSE +1 -1
- data/Rakefile +150 -150
- data/chargebee.gemspec +4 -5
- data/lib/chargebee/environment.rb +6 -2
- data/lib/chargebee/list_result.rb +28 -28
- data/lib/chargebee/models/addon.rb +1 -1
- data/lib/chargebee/models/credit_note.rb +11 -3
- data/lib/chargebee/models/customer.rb +9 -5
- data/lib/chargebee/models/download.rb +1 -1
- data/lib/chargebee/models/export.rb +1 -1
- data/lib/chargebee/models/invoice.rb +10 -1
- data/lib/chargebee/models/item_price.rb +9 -1
- data/lib/chargebee/models/payment_source.rb +5 -1
- data/lib/chargebee/models/plan.rb +1 -1
- data/lib/chargebee/models/tax_withheld.rb +11 -0
- data/lib/chargebee/rest.rb +9 -3
- data/lib/chargebee/result.rb +16 -5
- data/lib/chargebee/util.rb +56 -56
- data/lib/chargebee.rb +8 -1
- data/lib/ssl/ca-certs.crt +3385 -3385
- data/spec/chargebee/list_result_spec.rb +53 -53
- data/spec/chargebee_spec.rb +99 -99
- data/spec/spec_helper.rb +24 -24
- metadata +11 -4
@@ -6,7 +6,7 @@ module ChargeBee
|
|
6
6
|
end
|
7
7
|
|
8
8
|
class BankAccount < Model
|
9
|
-
attr_accessor :last4, :name_on_account, :bank_name, :mandate_id, :account_type, :echeck_type, :account_holder_type
|
9
|
+
attr_accessor :last4, :name_on_account, :first_name, :last_name, :bank_name, :mandate_id, :account_type, :echeck_type, :account_holder_type, :email
|
10
10
|
end
|
11
11
|
|
12
12
|
class AmazonPayment < Model
|
@@ -52,6 +52,10 @@ module ChargeBee
|
|
52
52
|
Request.send('post', uri_path("payment_sources",id.to_s,"update_card"), params, env, headers)
|
53
53
|
end
|
54
54
|
|
55
|
+
def self.update_bank_account(id, params={}, env=nil, headers={})
|
56
|
+
Request.send('post', uri_path("payment_sources",id.to_s,"update_bank_account"), params, env, headers)
|
57
|
+
end
|
58
|
+
|
55
59
|
def self.verify_bank_account(id, params, env=nil, headers={})
|
56
60
|
Request.send('post', uri_path("payment_sources",id.to_s,"verify_bank_account"), params, env, headers)
|
57
61
|
end
|
@@ -20,7 +20,7 @@ module ChargeBee
|
|
20
20
|
attr_accessor :id, :name, :invoice_name, :description, :price, :currency_code, :period, :period_unit,
|
21
21
|
:trial_period, :trial_period_unit, :trial_end_action, :pricing_model, :charge_model, :free_quantity,
|
22
22
|
:setup_cost, :downgrade_penalty, :status, :archived_at, :billing_cycles, :redirect_url, :enabled_in_hosted_pages,
|
23
|
-
:enabled_in_portal, :addon_applicability, :tax_code, :taxjar_product_code, :avalara_sale_type,
|
23
|
+
:enabled_in_portal, :addon_applicability, :tax_code, :hsn_code, :taxjar_product_code, :avalara_sale_type,
|
24
24
|
:avalara_transaction_type, :avalara_service_type, :sku, :accounting_code, :accounting_category1,
|
25
25
|
:accounting_category2, :accounting_category3, :accounting_category4, :is_shippable, :shipping_frequency_period,
|
26
26
|
:shipping_frequency_period_unit, :resource_version, :updated_at, :giftable, :claim_url, :free_quantity_in_decimal,
|
data/lib/chargebee/rest.rb
CHANGED
@@ -39,8 +39,8 @@ module ChargeBee
|
|
39
39
|
:user => api_key,
|
40
40
|
:headers => headers,
|
41
41
|
:payload => payload,
|
42
|
-
:open_timeout =>
|
43
|
-
:timeout =>
|
42
|
+
:open_timeout => env.connect_timeout,
|
43
|
+
:timeout => env.read_timeout
|
44
44
|
}.merge(ssl_opts)
|
45
45
|
|
46
46
|
begin
|
@@ -59,7 +59,13 @@ module ChargeBee
|
|
59
59
|
begin
|
60
60
|
resp = JSON.parse(rbody)
|
61
61
|
rescue Exception => e
|
62
|
-
|
62
|
+
if rbody.include? "503"
|
63
|
+
raise Error.new("Sorry, the server is currently unable to handle the request due to a temporary overload or scheduled maintenance. Please retry after sometime. \n type: internal_temporary_error, \n http_status_code: 503, \n error_code: internal_temporary_error,\n content: #{rbody.inspect}",e)
|
64
|
+
elsif rbody.include? "504"
|
65
|
+
raise Error.new("The server did not receive a timely response from an upstream server, request aborted. If this problem persists, contact us at support@chargebee.com. \n type: gateway_timeout, \n http_status_code: 504, \n error_code: gateway_timeout,\n content: #{rbody.inspect}",e)
|
66
|
+
else
|
67
|
+
raise Error.new("Sorry, something went wrong when trying to process the request. If this problem persists, contact us at support@chargebee.com. \n type: internal_error, \n http_status_code: 500, \n error_code: internal_error,\n content: #{rbody.inspect}",e)
|
68
|
+
end
|
63
69
|
end
|
64
70
|
resp = Util.symbolize_keys(resp)
|
65
71
|
resp
|
data/lib/chargebee/result.rb
CHANGED
@@ -24,7 +24,7 @@ module ChargeBee
|
|
24
24
|
|
25
25
|
def customer()
|
26
26
|
customer = get(:customer, Customer,
|
27
|
-
{:billing_address => Customer::BillingAddress, :referral_urls => Customer::ReferralUrl, :contacts => Customer::Contact, :payment_method => Customer::PaymentMethod, :balances => Customer::Balance, :relationship => Customer::Relationship, :parent_account_access => Customer::ParentAccountAccess, :child_account_access => Customer::ChildAccountAccess});
|
27
|
+
{:billing_address => Customer::BillingAddress, :referral_urls => Customer::ReferralUrl, :contacts => Customer::Contact, :payment_method => Customer::PaymentMethod, :balances => Customer::Balance, :entity_identifiers => Customer::EntityIdentifier, :relationship => Customer::Relationship, :parent_account_access => Customer::ParentAccountAccess, :child_account_access => Customer::ChildAccountAccess});
|
28
28
|
return customer;
|
29
29
|
end
|
30
30
|
|
@@ -71,13 +71,18 @@ module ChargeBee
|
|
71
71
|
|
72
72
|
def invoice()
|
73
73
|
invoice = get(:invoice, Invoice,
|
74
|
-
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :applied_credits => Invoice::AppliedCredit, :adjustment_credit_notes => Invoice::AdjustmentCreditNote, :issued_credit_notes => Invoice::IssuedCreditNote, :linked_orders => Invoice::LinkedOrder, :notes => Invoice::Note, :shipping_address => Invoice::ShippingAddress, :billing_address => Invoice::BillingAddress});
|
74
|
+
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :applied_credits => Invoice::AppliedCredit, :adjustment_credit_notes => Invoice::AdjustmentCreditNote, :issued_credit_notes => Invoice::IssuedCreditNote, :linked_orders => Invoice::LinkedOrder, :notes => Invoice::Note, :shipping_address => Invoice::ShippingAddress, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice});
|
75
75
|
return invoice;
|
76
76
|
end
|
77
77
|
|
78
|
+
def tax_withheld()
|
79
|
+
tax_withheld = get(:tax_withheld, TaxWithheld);
|
80
|
+
return tax_withheld;
|
81
|
+
end
|
82
|
+
|
78
83
|
def credit_note()
|
79
84
|
credit_note = get(:credit_note, CreditNote,
|
80
|
-
{:line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :line_item_discounts => CreditNote::LineItemDiscount, :line_item_tiers => CreditNote::LineItemTier, :taxes => CreditNote::Tax, :line_item_taxes => CreditNote::LineItemTax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
85
|
+
{:einvoice => CreditNote::Einvoice, :line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :line_item_discounts => CreditNote::LineItemDiscount, :line_item_tiers => CreditNote::LineItemTier, :taxes => CreditNote::Tax, :line_item_taxes => CreditNote::LineItemTax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
81
86
|
return credit_note;
|
82
87
|
end
|
83
88
|
|
@@ -276,7 +281,7 @@ module ChargeBee
|
|
276
281
|
|
277
282
|
def credit_notes()
|
278
283
|
credit_notes = get_list(:credit_notes, CreditNote,
|
279
|
-
{:line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :line_item_discounts => CreditNote::LineItemDiscount, :line_item_tiers => CreditNote::LineItemTier, :taxes => CreditNote::Tax, :line_item_taxes => CreditNote::LineItemTax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
284
|
+
{:einvoice => CreditNote::Einvoice, :line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :line_item_discounts => CreditNote::LineItemDiscount, :line_item_tiers => CreditNote::LineItemTier, :taxes => CreditNote::Tax, :line_item_taxes => CreditNote::LineItemTax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
280
285
|
return credit_notes;
|
281
286
|
end
|
282
287
|
|
@@ -292,9 +297,15 @@ module ChargeBee
|
|
292
297
|
return hierarchies;
|
293
298
|
end
|
294
299
|
|
300
|
+
def downloads()
|
301
|
+
downloads = get_list(:downloads, Download,
|
302
|
+
{});
|
303
|
+
return downloads;
|
304
|
+
end
|
305
|
+
|
295
306
|
def invoices()
|
296
307
|
invoices = get_list(:invoices, Invoice,
|
297
|
-
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :applied_credits => Invoice::AppliedCredit, :adjustment_credit_notes => Invoice::AdjustmentCreditNote, :issued_credit_notes => Invoice::IssuedCreditNote, :linked_orders => Invoice::LinkedOrder, :notes => Invoice::Note, :shipping_address => Invoice::ShippingAddress, :billing_address => Invoice::BillingAddress});
|
308
|
+
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :applied_credits => Invoice::AppliedCredit, :adjustment_credit_notes => Invoice::AdjustmentCreditNote, :issued_credit_notes => Invoice::IssuedCreditNote, :linked_orders => Invoice::LinkedOrder, :notes => Invoice::Note, :shipping_address => Invoice::ShippingAddress, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice});
|
298
309
|
return invoices;
|
299
310
|
end
|
300
311
|
|
data/lib/chargebee/util.rb
CHANGED
@@ -1,56 +1,56 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
module Util
|
3
|
-
|
4
|
-
def self.serialize(value, prefix = nil, idx = nil)
|
5
|
-
serialized = {}
|
6
|
-
case value
|
7
|
-
when Hash
|
8
|
-
value.each do |k, v|
|
9
|
-
if(v.kind_of? Hash or v.kind_of? Array)
|
10
|
-
serialized.merge!(serialize(v, k))
|
11
|
-
else
|
12
|
-
key = "#{(prefix!=nil) ? prefix:''}#{(prefix!=nil) ? '['+k.to_s+']' : k}#{(idx != nil) ? '['+idx.to_s+']':''}"
|
13
|
-
serialized.merge!({key => as_str(v)})
|
14
|
-
end
|
15
|
-
end
|
16
|
-
when Array
|
17
|
-
value.each_with_index do |v, i|
|
18
|
-
serialized.merge!(serialize(v, prefix, i))
|
19
|
-
end
|
20
|
-
else
|
21
|
-
if(idx != nil and prefix != nil)
|
22
|
-
key = "#{prefix}[#{idx.to_s}]"
|
23
|
-
serialized.merge!({key => as_str(value)})
|
24
|
-
else
|
25
|
-
raise ArgumentError.new("only hash or arrays are allowed as value")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
serialized
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.symbolize_keys(object)
|
32
|
-
case object
|
33
|
-
when Hash
|
34
|
-
new = {}
|
35
|
-
object.each do |key, value|
|
36
|
-
key = (key.to_sym rescue key) || key
|
37
|
-
new[key] = symbolize_keys(value)
|
38
|
-
end
|
39
|
-
new
|
40
|
-
when Array
|
41
|
-
object.map { |value| symbolize_keys(value) }
|
42
|
-
else
|
43
|
-
object
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.as_str(value)
|
48
|
-
if(value == nil)
|
49
|
-
return ''
|
50
|
-
else
|
51
|
-
return value.to_s
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
end
|
1
|
+
module ChargeBee
|
2
|
+
module Util
|
3
|
+
|
4
|
+
def self.serialize(value, prefix = nil, idx = nil)
|
5
|
+
serialized = {}
|
6
|
+
case value
|
7
|
+
when Hash
|
8
|
+
value.each do |k, v|
|
9
|
+
if(v.kind_of? Hash or v.kind_of? Array)
|
10
|
+
serialized.merge!(serialize(v, k))
|
11
|
+
else
|
12
|
+
key = "#{(prefix!=nil) ? prefix:''}#{(prefix!=nil) ? '['+k.to_s+']' : k}#{(idx != nil) ? '['+idx.to_s+']':''}"
|
13
|
+
serialized.merge!({key => as_str(v)})
|
14
|
+
end
|
15
|
+
end
|
16
|
+
when Array
|
17
|
+
value.each_with_index do |v, i|
|
18
|
+
serialized.merge!(serialize(v, prefix, i))
|
19
|
+
end
|
20
|
+
else
|
21
|
+
if(idx != nil and prefix != nil)
|
22
|
+
key = "#{prefix}[#{idx.to_s}]"
|
23
|
+
serialized.merge!({key => as_str(value)})
|
24
|
+
else
|
25
|
+
raise ArgumentError.new("only hash or arrays are allowed as value")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
serialized
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.symbolize_keys(object)
|
32
|
+
case object
|
33
|
+
when Hash
|
34
|
+
new = {}
|
35
|
+
object.each do |key, value|
|
36
|
+
key = (key.to_sym rescue key) || key
|
37
|
+
new[key] = symbolize_keys(value)
|
38
|
+
end
|
39
|
+
new
|
40
|
+
when Array
|
41
|
+
object.map { |value| symbolize_keys(value) }
|
42
|
+
else
|
43
|
+
object
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.as_str(value)
|
48
|
+
if(value == nil)
|
49
|
+
return ''
|
50
|
+
else
|
51
|
+
return value.to_s
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
data/lib/chargebee.rb
CHANGED
@@ -53,7 +53,7 @@ require File.dirname(__FILE__) + '/chargebee/models/usage.rb'
|
|
53
53
|
|
54
54
|
module ChargeBee
|
55
55
|
|
56
|
-
VERSION = '2.
|
56
|
+
VERSION = '2.12.0'
|
57
57
|
|
58
58
|
@@default_env = nil
|
59
59
|
@@verify_ca_certs = true
|
@@ -89,5 +89,12 @@ module ChargeBee
|
|
89
89
|
@@user_agent
|
90
90
|
end
|
91
91
|
|
92
|
+
def self.update_connect_timeout_secs(connect_timeout)
|
93
|
+
@@default_env.connect_timeout = connect_timeout
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.update_read_timeout_secs(read_timeout)
|
97
|
+
@@default_env.read_timeout = read_timeout
|
98
|
+
end
|
92
99
|
end
|
93
100
|
|