chargebee 1.7.5 → 2.0.0
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/CHANGELOG.md +111 -105
- data/README.rdoc +16 -14
- data/Rakefile +150 -150
- data/chargebee.gemspec +6 -3
- data/lib/chargebee.rb +5 -2
- data/lib/chargebee/environment.rb +1 -1
- data/lib/chargebee/list_result.rb +28 -28
- data/lib/chargebee/models/card.rb +2 -6
- data/lib/chargebee/models/credit_note.rb +44 -0
- data/lib/chargebee/models/credit_note_estimate.rb +23 -0
- data/lib/chargebee/models/customer.rb +7 -7
- data/lib/chargebee/models/estimate.rb +1 -15
- data/lib/chargebee/models/hosted_page.rb +0 -8
- data/lib/chargebee/models/invoice.rb +26 -10
- data/lib/chargebee/models/invoice_estimate.rb +23 -0
- data/lib/chargebee/models/model.rb +34 -3
- data/lib/chargebee/models/subscription_estimate.rb +10 -0
- data/lib/chargebee/models/transaction.rb +10 -10
- data/lib/chargebee/result.rb +75 -26
- data/lib/chargebee/util.rb +56 -56
- 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/sample_response.rb +1 -1
- data/spec/spec_helper.rb +24 -24
- metadata +6 -3
- data/lib/chargebee/models/payment_intent.rb +0 -27
@@ -1,9 +1,9 @@
|
|
1
1
|
module ChargeBee
|
2
2
|
class Card < Model
|
3
3
|
|
4
|
-
attr_accessor :
|
4
|
+
attr_accessor :customer_id, :status, :gateway, :first_name, :last_name, :iin, :last4, :card_type,
|
5
5
|
:expiry_month, :expiry_year, :billing_addr1, :billing_addr2, :billing_city, :billing_state_code,
|
6
|
-
:billing_state, :billing_country, :billing_zip, :ip_address, :
|
6
|
+
:billing_state, :billing_country, :billing_zip, :ip_address, :masked_number
|
7
7
|
|
8
8
|
# OPERATIONS
|
9
9
|
#-----------
|
@@ -16,10 +16,6 @@ module ChargeBee
|
|
16
16
|
Request.send('post', uri_path("customers",id.to_s,"credit_card"), params, env, headers)
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.update_card_for_customer_using_payment_intent(id, params={}, env=nil, headers={})
|
20
|
-
Request.send('post', uri_path("customers",id.to_s,"credit_card_using_payment_intent"), params, env, headers)
|
21
|
-
end
|
22
|
-
|
23
19
|
def self.switch_gateway_for_customer(id, params, env=nil, headers={})
|
24
20
|
Request.send('post', uri_path("customers",id.to_s,"switch_gateway"), params, env, headers)
|
25
21
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module ChargeBee
|
2
|
+
class CreditNote < Model
|
3
|
+
|
4
|
+
class LineItem < Model
|
5
|
+
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax_amount, :tax_rate, :amount, :discount_amount, :item_level_discount_amount, :description, :entity_type, :entity_id
|
6
|
+
end
|
7
|
+
|
8
|
+
class Discount < Model
|
9
|
+
attr_accessor :amount, :description, :entity_type, :entity_id
|
10
|
+
end
|
11
|
+
|
12
|
+
class Tax < Model
|
13
|
+
attr_accessor :amount, :description
|
14
|
+
end
|
15
|
+
|
16
|
+
class LinkedRefund < Model
|
17
|
+
attr_accessor :txn_id, :applied_amount, :applied_at, :txn_status, :txn_date, :txn_amount
|
18
|
+
end
|
19
|
+
|
20
|
+
class Allocation < Model
|
21
|
+
attr_accessor :invoice_id, :allocated_amount, :allocated_at, :invoice_date, :invoice_status
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_accessor :id, :customer_id, :subscription_id, :reference_invoice_id, :type, :reason_code,
|
25
|
+
:status, :vat_number, :date, :price_type, :total, :amount_allocated, :amount_refunded, :amount_available,
|
26
|
+
:refunded_at, :sub_total, :line_items, :discounts, :taxes, :linked_refunds, :allocations
|
27
|
+
|
28
|
+
# OPERATIONS
|
29
|
+
#-----------
|
30
|
+
|
31
|
+
def self.retrieve(id, env=nil, headers={})
|
32
|
+
Request.send('get', uri_path("credit_notes",id.to_s), {}, env, headers)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.list(params={}, env=nil, headers={})
|
36
|
+
Request.send('get', uri_path("credit_notes"), params, env, headers)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.credit_notes_for_customer(id, params={}, env=nil, headers={})
|
40
|
+
Request.send('get', uri_path("customers",id.to_s,"credit_notes"), params, env, headers)
|
41
|
+
end
|
42
|
+
|
43
|
+
end # ~CreditNote
|
44
|
+
end # ~ChargeBee
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ChargeBee
|
2
|
+
class CreditNoteEstimate < Model
|
3
|
+
|
4
|
+
class LineItem < Model
|
5
|
+
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax_amount, :tax_rate, :amount, :discount_amount, :item_level_discount_amount, :description, :entity_type, :entity_id
|
6
|
+
end
|
7
|
+
|
8
|
+
class Discount < Model
|
9
|
+
attr_accessor :amount, :description, :entity_type, :entity_id
|
10
|
+
end
|
11
|
+
|
12
|
+
class Tax < Model
|
13
|
+
attr_accessor :amount, :description
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :reference_invoice_id, :type, :price_type, :sub_total, :total, :amount_allocated,
|
17
|
+
:amount_available, :line_items, :discounts, :taxes
|
18
|
+
|
19
|
+
# OPERATIONS
|
20
|
+
#-----------
|
21
|
+
|
22
|
+
end # ~CreditNoteEstimate
|
23
|
+
end # ~ChargeBee
|
@@ -15,7 +15,7 @@ module ChargeBee
|
|
15
15
|
|
16
16
|
attr_accessor :id, :first_name, :last_name, :email, :phone, :company, :vat_number, :auto_collection,
|
17
17
|
:allow_direct_debit, :created_at, :created_from_ip, :taxability, :card_status, :billing_address,
|
18
|
-
:contacts, :payment_method, :invoice_notes, :
|
18
|
+
:contacts, :payment_method, :invoice_notes, :promotional_credits, :refundable_credits, :excess_payments,
|
19
19
|
:meta_data
|
20
20
|
|
21
21
|
# OPERATIONS
|
@@ -57,16 +57,16 @@ module ChargeBee
|
|
57
57
|
Request.send('post', uri_path("customers",id.to_s,"delete_contact"), params, env, headers)
|
58
58
|
end
|
59
59
|
|
60
|
-
def self.
|
61
|
-
Request.send('post', uri_path("customers",id.to_s,"
|
60
|
+
def self.add_promotional_credits(id, params, env=nil, headers={})
|
61
|
+
Request.send('post', uri_path("customers",id.to_s,"add_promotional_credits"), params, env, headers)
|
62
62
|
end
|
63
63
|
|
64
|
-
def self.
|
65
|
-
Request.send('post', uri_path("customers",id.to_s,"
|
64
|
+
def self.deduct_promotional_credits(id, params, env=nil, headers={})
|
65
|
+
Request.send('post', uri_path("customers",id.to_s,"deduct_promotional_credits"), params, env, headers)
|
66
66
|
end
|
67
67
|
|
68
|
-
def self.
|
69
|
-
Request.send('post', uri_path("customers",id.to_s,"
|
68
|
+
def self.set_promotional_credits(id, params, env=nil, headers={})
|
69
|
+
Request.send('post', uri_path("customers",id.to_s,"set_promotional_credits"), params, env, headers)
|
70
70
|
end
|
71
71
|
|
72
72
|
def self.delete(id, params={}, env=nil, headers={})
|
@@ -1,21 +1,7 @@
|
|
1
1
|
module ChargeBee
|
2
2
|
class Estimate < Model
|
3
3
|
|
4
|
-
|
5
|
-
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax, :tax_rate, :amount, :description, :type, :entity_type, :entity_id
|
6
|
-
end
|
7
|
-
|
8
|
-
class Discount < Model
|
9
|
-
attr_accessor :amount, :description, :type, :entity_id
|
10
|
-
end
|
11
|
-
|
12
|
-
class Tax < Model
|
13
|
-
attr_accessor :amount, :description
|
14
|
-
end
|
15
|
-
|
16
|
-
attr_accessor :created_at, :recurring, :subscription_id, :subscription_status, :term_ends_at,
|
17
|
-
:collect_now, :price_type, :amount, :credits_applied, :amount_due, :sub_total, :line_items,
|
18
|
-
:discounts, :taxes
|
4
|
+
attr_accessor :created_at, :subscription_estimate, :invoice_estimate, :credit_note_estimates
|
19
5
|
|
20
6
|
# OPERATIONS
|
21
7
|
#-----------
|
@@ -34,14 +34,6 @@ module ChargeBee
|
|
34
34
|
Request.send('post', uri_path("hosted_pages","update_payment_method"), params, env, headers)
|
35
35
|
end
|
36
36
|
|
37
|
-
def self.checkout_onetime_charge(params, env=nil, headers={})
|
38
|
-
Request.send('post', uri_path("hosted_pages","checkout_onetime_charge"), params, env, headers)
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.checkout_onetime_addons(params, env=nil, headers={})
|
42
|
-
Request.send('post', uri_path("hosted_pages","checkout_onetime_addons"), params, env, headers)
|
43
|
-
end
|
44
|
-
|
45
37
|
def self.retrieve(id, env=nil, headers={})
|
46
38
|
Request.send('get', uri_path("hosted_pages",id.to_s), {}, env, headers)
|
47
39
|
end
|
@@ -2,19 +2,31 @@ module ChargeBee
|
|
2
2
|
class Invoice < Model
|
3
3
|
|
4
4
|
class LineItem < Model
|
5
|
-
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :
|
5
|
+
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax_amount, :tax_rate, :amount, :discount_amount, :item_level_discount_amount, :description, :entity_type, :entity_id
|
6
6
|
end
|
7
7
|
|
8
8
|
class Discount < Model
|
9
|
-
attr_accessor :amount, :description, :
|
9
|
+
attr_accessor :amount, :description, :entity_type, :entity_id
|
10
10
|
end
|
11
11
|
|
12
12
|
class Tax < Model
|
13
13
|
attr_accessor :amount, :description
|
14
14
|
end
|
15
15
|
|
16
|
-
class
|
17
|
-
attr_accessor :txn_id, :applied_amount, :applied_at, :
|
16
|
+
class LinkedPayment < Model
|
17
|
+
attr_accessor :txn_id, :applied_amount, :applied_at, :txn_status, :txn_date, :txn_amount
|
18
|
+
end
|
19
|
+
|
20
|
+
class AppliedCredit < Model
|
21
|
+
attr_accessor :cn_id, :applied_amount, :applied_at, :cn_reason_code, :cn_date, :cn_status
|
22
|
+
end
|
23
|
+
|
24
|
+
class AdjustmentCreditNote < Model
|
25
|
+
attr_accessor :cn_id, :cn_reason_code, :cn_date, :cn_total, :cn_status
|
26
|
+
end
|
27
|
+
|
28
|
+
class IssuedCreditNote < Model
|
29
|
+
attr_accessor :cn_id, :cn_reason_code, :cn_date, :cn_total, :cn_status
|
18
30
|
end
|
19
31
|
|
20
32
|
class LinkedOrder < Model
|
@@ -34,10 +46,10 @@ module ChargeBee
|
|
34
46
|
end
|
35
47
|
|
36
48
|
attr_accessor :id, :po_number, :customer_id, :subscription_id, :recurring, :status, :vat_number,
|
37
|
-
:price_type, :
|
38
|
-
:amount_due, :
|
39
|
-
:line_items, :discounts, :taxes, :
|
40
|
-
:billing_address
|
49
|
+
:price_type, :date, :total, :amount_paid, :amount_adjusted, :write_off_amount, :credits_applied,
|
50
|
+
:amount_due, :paid_at, :dunning_status, :next_retry_at, :sub_total, :tax, :first_invoice, :currency_code,
|
51
|
+
:line_items, :discounts, :taxes, :linked_payments, :applied_credits, :adjustment_credit_notes,
|
52
|
+
:issued_credit_notes, :linked_orders, :notes, :shipping_address, :billing_address
|
41
53
|
|
42
54
|
# OPERATIONS
|
43
55
|
#-----------
|
@@ -86,14 +98,18 @@ module ChargeBee
|
|
86
98
|
Request.send('post', uri_path("invoices",id.to_s,"add_addon_charge"), params, env, headers)
|
87
99
|
end
|
88
100
|
|
89
|
-
def self.
|
90
|
-
Request.send('post', uri_path("invoices",id.to_s,"
|
101
|
+
def self.close(id, env=nil, headers={})
|
102
|
+
Request.send('post', uri_path("invoices",id.to_s,"close"), {}, env, headers)
|
91
103
|
end
|
92
104
|
|
93
105
|
def self.collect_payment(id, params={}, env=nil, headers={})
|
94
106
|
Request.send('post', uri_path("invoices",id.to_s,"collect_payment"), params, env, headers)
|
95
107
|
end
|
96
108
|
|
109
|
+
def self.record_payment(id, params, env=nil, headers={})
|
110
|
+
Request.send('post', uri_path("invoices",id.to_s,"record_payment"), params, env, headers)
|
111
|
+
end
|
112
|
+
|
97
113
|
def self.refund(id, params={}, env=nil, headers={})
|
98
114
|
Request.send('post', uri_path("invoices",id.to_s,"refund"), params, env, headers)
|
99
115
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ChargeBee
|
2
|
+
class InvoiceEstimate < Model
|
3
|
+
|
4
|
+
class LineItem < Model
|
5
|
+
attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax_amount, :tax_rate, :amount, :discount_amount, :item_level_discount_amount, :description, :entity_type, :entity_id
|
6
|
+
end
|
7
|
+
|
8
|
+
class Discount < Model
|
9
|
+
attr_accessor :amount, :description, :entity_type, :entity_id
|
10
|
+
end
|
11
|
+
|
12
|
+
class Tax < Model
|
13
|
+
attr_accessor :amount, :description
|
14
|
+
end
|
15
|
+
|
16
|
+
attr_accessor :recurring, :price_type, :sub_total, :total, :credits_applied, :amount_paid, :amount_due,
|
17
|
+
:line_items, :discounts, :taxes
|
18
|
+
|
19
|
+
# OPERATIONS
|
20
|
+
#-----------
|
21
|
+
|
22
|
+
end # ~InvoiceEstimate
|
23
|
+
end # ~ChargeBee
|
@@ -3,9 +3,10 @@ require 'uri'
|
|
3
3
|
module ChargeBee
|
4
4
|
class Model
|
5
5
|
|
6
|
-
def initialize(values, sub_types={})
|
6
|
+
def initialize(values, sub_types={}, dependant_types={})
|
7
7
|
@values = values
|
8
8
|
@sub_types = sub_types
|
9
|
+
@dependant_types = dependant_types
|
9
10
|
end
|
10
11
|
|
11
12
|
def to_s(*args)
|
@@ -21,6 +22,8 @@ module ChargeBee
|
|
21
22
|
values.each do |k, v|
|
22
23
|
set_val = nil
|
23
24
|
case v
|
25
|
+
when Hash && (@dependant_types[k] != nil)
|
26
|
+
next
|
24
27
|
when Hash
|
25
28
|
set_val = (@sub_types[k] != nil) ? @sub_types[k].construct(v) : v
|
26
29
|
when Array
|
@@ -58,13 +61,41 @@ module ChargeBee
|
|
58
61
|
return url
|
59
62
|
end
|
60
63
|
|
61
|
-
def self.construct(values, sub_types = {})
|
64
|
+
def self.construct(values, sub_types = {}, dependant_types = {})
|
62
65
|
if(values != nil)
|
63
|
-
obj = self.new(values, sub_types)
|
66
|
+
obj = self.new(values, sub_types, dependant_types)
|
64
67
|
obj.load(values)
|
65
68
|
obj
|
66
69
|
end
|
67
70
|
end
|
68
71
|
|
72
|
+
def init_dependant(obj, type, sub_types = {})
|
73
|
+
instance_eval do
|
74
|
+
if(obj[type] != nil)
|
75
|
+
case obj
|
76
|
+
when Hash
|
77
|
+
if(@dependant_types[type] != nil)
|
78
|
+
dependant_obj = @dependant_types[type].construct(obj[type], sub_types)
|
79
|
+
instance_variable_set("@#{type}", dependant_obj)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def init_dependant_list(obj, type, sub_types = {})
|
87
|
+
instance_eval do
|
88
|
+
if(obj[type] != nil)
|
89
|
+
case obj[type]
|
90
|
+
when Array
|
91
|
+
if(@dependant_types[type] != nil)
|
92
|
+
set_val = obj[type].map {|dt| @dependant_types[type].construct(dt, sub_types)}
|
93
|
+
instance_variable_set("@#{type}", set_val)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
69
100
|
end
|
70
101
|
end
|
@@ -2,7 +2,11 @@ module ChargeBee
|
|
2
2
|
class Transaction < Model
|
3
3
|
|
4
4
|
class LinkedInvoice < Model
|
5
|
-
attr_accessor :invoice_id, :applied_amount, :applied_at, :invoice_date, :
|
5
|
+
attr_accessor :invoice_id, :applied_amount, :applied_at, :invoice_date, :invoice_total, :invoice_status
|
6
|
+
end
|
7
|
+
|
8
|
+
class LinkedCreditNote < Model
|
9
|
+
attr_accessor :cn_id, :applied_amount, :applied_at, :cn_reason_code, :cn_date, :cn_total, :cn_status, :cn_reference_invoice_id
|
6
10
|
end
|
7
11
|
|
8
12
|
class LinkedRefund < Model
|
@@ -10,9 +14,9 @@ module ChargeBee
|
|
10
14
|
end
|
11
15
|
|
12
16
|
attr_accessor :id, :customer_id, :subscription_id, :payment_method, :reference_number, :gateway,
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
17
|
+
:type, :date, :amount, :id_at_gateway, :status, :error_code, :error_text, :voided_at, :amount_unused,
|
18
|
+
:masked_card_number, :reference_transaction_id, :refunded_txn_id, :reversal_transaction_id,
|
19
|
+
:linked_invoices, :linked_credit_notes, :linked_refunds, :currency_code
|
16
20
|
|
17
21
|
# OPERATIONS
|
18
22
|
#-----------
|
@@ -29,17 +33,13 @@ module ChargeBee
|
|
29
33
|
Request.send('get', uri_path("subscriptions",id.to_s,"transactions"), params, env, headers)
|
30
34
|
end
|
31
35
|
|
32
|
-
def self.
|
33
|
-
Request.send('get', uri_path("invoices",id.to_s,"
|
36
|
+
def self.payments_for_invoice(id, params={}, env=nil, headers={})
|
37
|
+
Request.send('get', uri_path("invoices",id.to_s,"payments"), params, env, headers)
|
34
38
|
end
|
35
39
|
|
36
40
|
def self.retrieve(id, env=nil, headers={})
|
37
41
|
Request.send('get', uri_path("transactions",id.to_s), {}, env, headers)
|
38
42
|
end
|
39
43
|
|
40
|
-
def self.record_payment(id, params, env=nil, headers={})
|
41
|
-
Request.send('post', uri_path("invoices",id.to_s,"record_payment"), params, env, headers)
|
42
|
-
end
|
43
|
-
|
44
44
|
end # ~Transaction
|
45
45
|
end # ~ChargeBee
|
data/lib/chargebee/result.rb
CHANGED
@@ -6,90 +6,139 @@ module ChargeBee
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def subscription()
|
9
|
-
get(:subscription, Subscription,
|
9
|
+
subscription = get(:subscription, Subscription,
|
10
10
|
{:addons => Subscription::Addon, :coupons => Subscription::Coupon, :shipping_address => Subscription::ShippingAddress});
|
11
|
+
return subscription;
|
11
12
|
end
|
12
13
|
|
13
14
|
def customer()
|
14
|
-
get(:customer, Customer,
|
15
|
+
customer = get(:customer, Customer,
|
15
16
|
{:billing_address => Customer::BillingAddress, :contacts => Customer::Contact, :payment_method => Customer::PaymentMethod});
|
17
|
+
return customer;
|
16
18
|
end
|
17
19
|
|
18
20
|
def card()
|
19
|
-
get(:card, Card);
|
21
|
+
card = get(:card, Card);
|
22
|
+
return card;
|
20
23
|
end
|
21
24
|
|
22
25
|
def invoice()
|
23
|
-
get(:invoice, Invoice,
|
24
|
-
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :taxes => Invoice::Tax, :
|
26
|
+
invoice = get(:invoice, Invoice,
|
27
|
+
{:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :taxes => Invoice::Tax, :linked_payments => Invoice::LinkedPayment, :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});
|
28
|
+
return invoice;
|
29
|
+
end
|
30
|
+
|
31
|
+
def credit_note()
|
32
|
+
credit_note = get(:credit_note, CreditNote,
|
33
|
+
{:line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :taxes => CreditNote::Tax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
34
|
+
return credit_note;
|
25
35
|
end
|
26
36
|
|
27
37
|
def order()
|
28
|
-
get(:order, Order);
|
38
|
+
order = get(:order, Order);
|
39
|
+
return order;
|
29
40
|
end
|
30
41
|
|
31
42
|
def transaction()
|
32
|
-
get(:transaction, Transaction,
|
33
|
-
{:linked_invoices => Transaction::LinkedInvoice, :linked_refunds => Transaction::LinkedRefund});
|
43
|
+
transaction = get(:transaction, Transaction,
|
44
|
+
{:linked_invoices => Transaction::LinkedInvoice, :linked_credit_notes => Transaction::LinkedCreditNote, :linked_refunds => Transaction::LinkedRefund});
|
45
|
+
return transaction;
|
34
46
|
end
|
35
47
|
|
36
48
|
def hosted_page()
|
37
|
-
get(:hosted_page, HostedPage);
|
49
|
+
hosted_page = get(:hosted_page, HostedPage);
|
50
|
+
return hosted_page;
|
38
51
|
end
|
39
52
|
|
40
53
|
def estimate()
|
41
|
-
get(:estimate, Estimate,
|
42
|
-
{:
|
54
|
+
estimate = get(:estimate, Estimate, {},
|
55
|
+
{:subscription_estimate => SubscriptionEstimate, :invoice_estimate => InvoiceEstimate, :credit_note_estimates => CreditNoteEstimate});
|
56
|
+
estimate.init_dependant(@response[:estimate], :subscription_estimate,
|
57
|
+
{});
|
58
|
+
estimate.init_dependant(@response[:estimate], :invoice_estimate,
|
59
|
+
{:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax});
|
60
|
+
estimate.init_dependant_list(@response[:estimate], :credit_note_estimates,
|
61
|
+
{:line_items => CreditNoteEstimate::LineItem, :discounts => CreditNoteEstimate::Discount, :taxes => CreditNoteEstimate::Tax});
|
62
|
+
return estimate;
|
43
63
|
end
|
44
64
|
|
45
65
|
def plan()
|
46
|
-
get(:plan, Plan);
|
66
|
+
plan = get(:plan, Plan);
|
67
|
+
return plan;
|
47
68
|
end
|
48
69
|
|
49
70
|
def addon()
|
50
|
-
get(:addon, Addon);
|
71
|
+
addon = get(:addon, Addon);
|
72
|
+
return addon;
|
51
73
|
end
|
52
74
|
|
53
75
|
def coupon()
|
54
|
-
get(:coupon, Coupon);
|
76
|
+
coupon = get(:coupon, Coupon);
|
77
|
+
return coupon;
|
55
78
|
end
|
56
79
|
|
57
80
|
def coupon_code()
|
58
|
-
get(:coupon_code, CouponCode);
|
81
|
+
coupon_code = get(:coupon_code, CouponCode);
|
82
|
+
return coupon_code;
|
59
83
|
end
|
60
84
|
|
61
85
|
def address()
|
62
|
-
get(:address, Address);
|
86
|
+
address = get(:address, Address);
|
87
|
+
return address;
|
63
88
|
end
|
64
89
|
|
65
90
|
def event()
|
66
|
-
get(:event, Event,
|
91
|
+
event = get(:event, Event,
|
67
92
|
{:webhooks => Event::Webhook});
|
93
|
+
return event;
|
68
94
|
end
|
69
95
|
|
70
96
|
def comment()
|
71
|
-
get(:comment, Comment);
|
97
|
+
comment = get(:comment, Comment);
|
98
|
+
return comment;
|
72
99
|
end
|
73
100
|
|
74
101
|
def download()
|
75
|
-
get(:download, Download);
|
102
|
+
download = get(:download, Download);
|
103
|
+
return download;
|
76
104
|
end
|
77
105
|
|
78
106
|
def portal_session()
|
79
|
-
get(:portal_session, PortalSession,
|
107
|
+
portal_session = get(:portal_session, PortalSession,
|
80
108
|
{:linked_customers => PortalSession::LinkedCustomer});
|
109
|
+
return portal_session;
|
81
110
|
end
|
82
111
|
|
83
|
-
def payment_intent()
|
84
|
-
get(:payment_intent, PaymentIntent,
|
85
|
-
{:payment_attempt => PaymentIntent::PaymentAttempt});
|
86
|
-
end
|
87
112
|
|
113
|
+
def credit_notes()
|
114
|
+
credit_notes = get_list(:credit_notes, CreditNote,
|
115
|
+
{:line_items => CreditNote::LineItem, :discounts => CreditNote::Discount, :taxes => CreditNote::Tax, :linked_refunds => CreditNote::LinkedRefund, :allocations => CreditNote::Allocation});
|
116
|
+
return credit_notes;
|
117
|
+
end
|
118
|
+
|
88
119
|
|
120
|
+
private
|
121
|
+
def get_list(type, klass, sub_types = {}, dependant_types = {}, dependant_sub_types = {})
|
122
|
+
if(@response[type] == nil)
|
123
|
+
return nil
|
124
|
+
end
|
125
|
+
set_val = Array.new
|
126
|
+
@response[type].each do |obj|
|
127
|
+
case obj
|
128
|
+
when Hash
|
129
|
+
model = klass.construct(obj, sub_types, dependant_types)
|
130
|
+
dependant_sub_types.each do |k,v|
|
131
|
+
model.init_dependant(obj, k, v);
|
132
|
+
end
|
133
|
+
set_val.push(model)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
return instance_variable_set("@#{type}", set_val)
|
137
|
+
end
|
89
138
|
|
90
139
|
private
|
91
|
-
def get(type, klass, sub_types = {})
|
92
|
-
klass.construct(@response[type], sub_types)
|
140
|
+
def get(type, klass, sub_types = {}, dependant_types = {})
|
141
|
+
return klass.construct(@response[type], sub_types, dependant_types)
|
93
142
|
end
|
94
143
|
|
95
144
|
def to_s(*args)
|