chargebee 2.6.4 → 2.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1524 -1488
- data/LICENSE +24 -24
- data/README.rdoc +41 -41
- data/chargebee.gemspec +4 -3
- data/lib/chargebee.rb +85 -85
- data/lib/chargebee/environment.rb +28 -28
- data/lib/chargebee/errors.rb +43 -43
- data/lib/chargebee/models/addon.rb +45 -45
- data/lib/chargebee/models/address.rb +18 -18
- data/lib/chargebee/models/card.rb +32 -32
- data/lib/chargebee/models/comment.rb +25 -25
- data/lib/chargebee/models/contact.rb +10 -10
- data/lib/chargebee/models/coupon.rb +40 -40
- data/lib/chargebee/models/coupon_code.rb +25 -25
- data/lib/chargebee/models/coupon_set.rb +37 -37
- data/lib/chargebee/models/credit_note.rb +77 -77
- data/lib/chargebee/models/credit_note_estimate.rb +35 -35
- data/lib/chargebee/models/customer.rb +137 -120
- data/lib/chargebee/models/download.rb +9 -9
- data/lib/chargebee/models/estimate.rb +46 -46
- data/lib/chargebee/models/event.rb +45 -45
- data/lib/chargebee/models/export.rb +86 -86
- data/lib/chargebee/models/gift.rb +42 -42
- data/lib/chargebee/models/hierarchy.rb +10 -0
- data/lib/chargebee/models/hosted_page.rb +77 -77
- data/lib/chargebee/models/invoice.rb +172 -172
- data/lib/chargebee/models/invoice_estimate.rb +35 -35
- data/lib/chargebee/models/model.rb +101 -101
- data/lib/chargebee/models/order.rb +76 -76
- data/lib/chargebee/models/payment_source.rb +79 -71
- data/lib/chargebee/models/plan.rb +60 -59
- data/lib/chargebee/models/portal_session.rb +30 -30
- data/lib/chargebee/models/promotional_credit.rb +30 -30
- data/lib/chargebee/models/quote.rb +72 -72
- data/lib/chargebee/models/resource_migration.rb +13 -13
- data/lib/chargebee/models/site_migration_detail.rb +14 -14
- data/lib/chargebee/models/subscription.rb +137 -137
- data/lib/chargebee/models/subscription_estimate.rb +13 -13
- data/lib/chargebee/models/third_party_payment_method.rb +9 -9
- data/lib/chargebee/models/time_machine.rb +46 -46
- data/lib/chargebee/models/token.rb +11 -0
- data/lib/chargebee/models/transaction.rb +62 -62
- data/lib/chargebee/models/unbilled_charge.rb +31 -31
- data/lib/chargebee/models/virtual_bank_account.rb +30 -26
- data/lib/chargebee/request.rb +27 -27
- data/lib/chargebee/rest.rb +92 -92
- data/lib/chargebee/result.rb +255 -240
- data/spec/errors_spec.rb +23 -23
- data/spec/sample_response.rb +73 -73
- metadata +5 -4
- data/lib/chargebee/.DS_Store +0 -0
@@ -1,138 +1,138 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
class Subscription < Model
|
3
|
-
|
4
|
-
class Addon < Model
|
5
|
-
attr_accessor :id, :quantity, :unit_price, :amount, :trial_end, :remaining_billing_cycles
|
6
|
-
end
|
7
|
-
|
8
|
-
class EventBasedAddon < Model
|
9
|
-
attr_accessor :id, :quantity, :unit_price, :on_event, :charge_once
|
10
|
-
end
|
11
|
-
|
12
|
-
class ChargedEventBasedAddon < Model
|
13
|
-
attr_accessor :id, :last_charged_at
|
14
|
-
end
|
15
|
-
|
16
|
-
class Coupon < Model
|
17
|
-
attr_accessor :coupon_id, :apply_till, :applied_count, :coupon_code
|
18
|
-
end
|
19
|
-
|
20
|
-
class ShippingAddress < Model
|
21
|
-
attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
|
22
|
-
end
|
23
|
-
|
24
|
-
class ReferralInfo < Model
|
25
|
-
attr_accessor :referral_code, :coupon_code, :referrer_id, :external_reference_id, :reward_status, :referral_system, :account_id, :campaign_id, :external_campaign_id, :friend_offer_type, :referrer_reward_type, :notify_referral_system, :destination_url, :post_purchase_widget_enabled
|
26
|
-
end
|
27
|
-
|
28
|
-
attr_accessor :id, :customer_id, :currency_code, :plan_id, :plan_quantity, :plan_unit_price,
|
29
|
-
:setup_fee, :plan_amount, :billing_period, :billing_period_unit, :plan_free_quantity, :status,
|
30
|
-
:start_date, :trial_start, :trial_end, :current_term_start, :current_term_end, :next_billing_at,
|
31
|
-
:remaining_billing_cycles, :po_number, :created_at, :started_at, :activated_at, :gift_id, :
|
32
|
-
:resume_date, :cancelled_at, :cancel_reason, :affiliate_token, :created_from_ip,
|
33
|
-
:updated_at, :has_scheduled_changes, :payment_source_id, :auto_collection,
|
34
|
-
:due_since, :total_dues, :mrr, :exchange_rate, :base_currency_code, :addons,
|
35
|
-
:charged_event_based_addons, :coupon, :coupons, :shipping_address, :referral_info,
|
36
|
-
:meta_data, :deleted
|
37
|
-
|
38
|
-
# OPERATIONS
|
39
|
-
#-----------
|
40
|
-
|
41
|
-
def self.create(params, env=nil, headers={})
|
42
|
-
Request.send('post', uri_path("subscriptions"), params, env, headers)
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.create_for_customer(id, params, env=nil, headers={})
|
46
|
-
Request.send('post', uri_path("customers",id.to_s,"subscriptions"), params, env, headers)
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.list(params={}, env=nil, headers={})
|
50
|
-
Request.send_list_request('get', uri_path("subscriptions"), params, env, headers)
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.subscriptions_for_customer(id, params={}, env=nil, headers={})
|
54
|
-
Request.send('get', uri_path("customers",id.to_s,"subscriptions"), params, env, headers)
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.retrieve(id, env=nil, headers={})
|
58
|
-
Request.send('get', uri_path("subscriptions",id.to_s), {}, env, headers)
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.retrieve_with_scheduled_changes(id, env=nil, headers={})
|
62
|
-
Request.send('get', uri_path("subscriptions",id.to_s,"retrieve_with_scheduled_changes"), {}, env, headers)
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.remove_scheduled_changes(id, env=nil, headers={})
|
66
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_changes"), {}, env, headers)
|
67
|
-
end
|
68
|
-
|
69
|
-
def self.remove_scheduled_cancellation(id, params={}, env=nil, headers={})
|
70
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_cancellation"), params, env, headers)
|
71
|
-
end
|
72
|
-
|
73
|
-
def self.remove_coupons(id, params={}, env=nil, headers={})
|
74
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"remove_coupons"), params, env, headers)
|
75
|
-
end
|
76
|
-
|
77
|
-
def self.update(id, params={}, env=nil, headers={})
|
78
|
-
Request.send('post', uri_path("subscriptions",id.to_s), params, env, headers)
|
79
|
-
end
|
80
|
-
|
81
|
-
def self.change_term_end(id, params, env=nil, headers={})
|
82
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"change_term_end"), params, env, headers)
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.cancel(id, params={}, env=nil, headers={})
|
86
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"cancel"), params, env, headers)
|
87
|
-
end
|
88
|
-
|
89
|
-
def self.reactivate(id, params={}, env=nil, headers={})
|
90
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"reactivate"), params, env, headers)
|
91
|
-
end
|
92
|
-
|
93
|
-
def self.add_charge_at_term_end(id, params, env=nil, headers={})
|
94
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"add_charge_at_term_end"), params, env, headers)
|
95
|
-
end
|
96
|
-
|
97
|
-
def self.charge_addon_at_term_end(id, params, env=nil, headers={})
|
98
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"charge_addon_at_term_end"), params, env, headers)
|
99
|
-
end
|
100
|
-
|
101
|
-
def self.charge_future_renewals(id, params={}, env=nil, headers={})
|
102
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"charge_future_renewals"), params, env, headers)
|
103
|
-
end
|
104
|
-
|
105
|
-
def self.import_subscription(params, env=nil, headers={})
|
106
|
-
Request.send('post', uri_path("subscriptions","import_subscription"), params, env, headers)
|
107
|
-
end
|
108
|
-
|
109
|
-
def self.import_for_customer(id, params, env=nil, headers={})
|
110
|
-
Request.send('post', uri_path("customers",id.to_s,"import_subscription"), params, env, headers)
|
111
|
-
end
|
112
|
-
|
113
|
-
def self.override_billing_profile(id, params={}, env=nil, headers={})
|
114
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"override_billing_profile"), params, env, headers)
|
115
|
-
end
|
116
|
-
|
117
|
-
def self.delete(id, env=nil, headers={})
|
118
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"delete"), {}, env, headers)
|
119
|
-
end
|
120
|
-
|
121
|
-
def self.pause(id, params={}, env=nil, headers={})
|
122
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"pause"), params, env, headers)
|
123
|
-
end
|
124
|
-
|
125
|
-
def self.resume(id, params={}, env=nil, headers={})
|
126
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"resume"), params, env, headers)
|
127
|
-
end
|
128
|
-
|
129
|
-
def self.remove_scheduled_pause(id, env=nil, headers={})
|
130
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_pause"), {}, env, headers)
|
131
|
-
end
|
132
|
-
|
133
|
-
def self.remove_scheduled_resumption(id, env=nil, headers={})
|
134
|
-
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_resumption"), {}, env, headers)
|
135
|
-
end
|
136
|
-
|
137
|
-
end # ~Subscription
|
1
|
+
module ChargeBee
|
2
|
+
class Subscription < Model
|
3
|
+
|
4
|
+
class Addon < Model
|
5
|
+
attr_accessor :id, :quantity, :unit_price, :amount, :trial_end, :remaining_billing_cycles
|
6
|
+
end
|
7
|
+
|
8
|
+
class EventBasedAddon < Model
|
9
|
+
attr_accessor :id, :quantity, :unit_price, :service_period_in_days, :on_event, :charge_once
|
10
|
+
end
|
11
|
+
|
12
|
+
class ChargedEventBasedAddon < Model
|
13
|
+
attr_accessor :id, :last_charged_at
|
14
|
+
end
|
15
|
+
|
16
|
+
class Coupon < Model
|
17
|
+
attr_accessor :coupon_id, :apply_till, :applied_count, :coupon_code
|
18
|
+
end
|
19
|
+
|
20
|
+
class ShippingAddress < Model
|
21
|
+
attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
|
22
|
+
end
|
23
|
+
|
24
|
+
class ReferralInfo < Model
|
25
|
+
attr_accessor :referral_code, :coupon_code, :referrer_id, :external_reference_id, :reward_status, :referral_system, :account_id, :campaign_id, :external_campaign_id, :friend_offer_type, :referrer_reward_type, :notify_referral_system, :destination_url, :post_purchase_widget_enabled
|
26
|
+
end
|
27
|
+
|
28
|
+
attr_accessor :id, :customer_id, :currency_code, :plan_id, :plan_quantity, :plan_unit_price,
|
29
|
+
:setup_fee, :plan_amount, :billing_period, :billing_period_unit, :plan_free_quantity, :status,
|
30
|
+
:start_date, :trial_start, :trial_end, :current_term_start, :current_term_end, :next_billing_at,
|
31
|
+
:remaining_billing_cycles, :po_number, :created_at, :started_at, :activated_at, :gift_id, :override_relationship,
|
32
|
+
:pause_date, :resume_date, :cancelled_at, :cancel_reason, :affiliate_token, :created_from_ip,
|
33
|
+
:resource_version, :updated_at, :has_scheduled_changes, :payment_source_id, :auto_collection,
|
34
|
+
:due_invoices_count, :due_since, :total_dues, :mrr, :exchange_rate, :base_currency_code, :addons,
|
35
|
+
:event_based_addons, :charged_event_based_addons, :coupon, :coupons, :shipping_address, :referral_info,
|
36
|
+
:invoice_notes, :meta_data, :deleted
|
37
|
+
|
38
|
+
# OPERATIONS
|
39
|
+
#-----------
|
40
|
+
|
41
|
+
def self.create(params, env=nil, headers={})
|
42
|
+
Request.send('post', uri_path("subscriptions"), params, env, headers)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.create_for_customer(id, params, env=nil, headers={})
|
46
|
+
Request.send('post', uri_path("customers",id.to_s,"subscriptions"), params, env, headers)
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.list(params={}, env=nil, headers={})
|
50
|
+
Request.send_list_request('get', uri_path("subscriptions"), params, env, headers)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.subscriptions_for_customer(id, params={}, env=nil, headers={})
|
54
|
+
Request.send('get', uri_path("customers",id.to_s,"subscriptions"), params, env, headers)
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.retrieve(id, env=nil, headers={})
|
58
|
+
Request.send('get', uri_path("subscriptions",id.to_s), {}, env, headers)
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.retrieve_with_scheduled_changes(id, env=nil, headers={})
|
62
|
+
Request.send('get', uri_path("subscriptions",id.to_s,"retrieve_with_scheduled_changes"), {}, env, headers)
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.remove_scheduled_changes(id, env=nil, headers={})
|
66
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_changes"), {}, env, headers)
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.remove_scheduled_cancellation(id, params={}, env=nil, headers={})
|
70
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_cancellation"), params, env, headers)
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.remove_coupons(id, params={}, env=nil, headers={})
|
74
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"remove_coupons"), params, env, headers)
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.update(id, params={}, env=nil, headers={})
|
78
|
+
Request.send('post', uri_path("subscriptions",id.to_s), params, env, headers)
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.change_term_end(id, params, env=nil, headers={})
|
82
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"change_term_end"), params, env, headers)
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.cancel(id, params={}, env=nil, headers={})
|
86
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"cancel"), params, env, headers)
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.reactivate(id, params={}, env=nil, headers={})
|
90
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"reactivate"), params, env, headers)
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.add_charge_at_term_end(id, params, env=nil, headers={})
|
94
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"add_charge_at_term_end"), params, env, headers)
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.charge_addon_at_term_end(id, params, env=nil, headers={})
|
98
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"charge_addon_at_term_end"), params, env, headers)
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.charge_future_renewals(id, params={}, env=nil, headers={})
|
102
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"charge_future_renewals"), params, env, headers)
|
103
|
+
end
|
104
|
+
|
105
|
+
def self.import_subscription(params, env=nil, headers={})
|
106
|
+
Request.send('post', uri_path("subscriptions","import_subscription"), params, env, headers)
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.import_for_customer(id, params, env=nil, headers={})
|
110
|
+
Request.send('post', uri_path("customers",id.to_s,"import_subscription"), params, env, headers)
|
111
|
+
end
|
112
|
+
|
113
|
+
def self.override_billing_profile(id, params={}, env=nil, headers={})
|
114
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"override_billing_profile"), params, env, headers)
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.delete(id, env=nil, headers={})
|
118
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"delete"), {}, env, headers)
|
119
|
+
end
|
120
|
+
|
121
|
+
def self.pause(id, params={}, env=nil, headers={})
|
122
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"pause"), params, env, headers)
|
123
|
+
end
|
124
|
+
|
125
|
+
def self.resume(id, params={}, env=nil, headers={})
|
126
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"resume"), params, env, headers)
|
127
|
+
end
|
128
|
+
|
129
|
+
def self.remove_scheduled_pause(id, env=nil, headers={})
|
130
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_pause"), {}, env, headers)
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.remove_scheduled_resumption(id, env=nil, headers={})
|
134
|
+
Request.send('post', uri_path("subscriptions",id.to_s,"remove_scheduled_resumption"), {}, env, headers)
|
135
|
+
end
|
136
|
+
|
137
|
+
end # ~Subscription
|
138
138
|
end # ~ChargeBee
|
@@ -1,14 +1,14 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
class SubscriptionEstimate < Model
|
3
|
-
|
4
|
-
class ShippingAddress < Model
|
5
|
-
attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
|
6
|
-
end
|
7
|
-
|
8
|
-
attr_accessor :id, :currency_code, :status, :next_billing_at, :pause_date, :resume_date, :shipping_address
|
9
|
-
|
10
|
-
# OPERATIONS
|
11
|
-
#-----------
|
12
|
-
|
13
|
-
end # ~SubscriptionEstimate
|
1
|
+
module ChargeBee
|
2
|
+
class SubscriptionEstimate < Model
|
3
|
+
|
4
|
+
class ShippingAddress < Model
|
5
|
+
attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_accessor :id, :currency_code, :status, :next_billing_at, :pause_date, :resume_date, :shipping_address
|
9
|
+
|
10
|
+
# OPERATIONS
|
11
|
+
#-----------
|
12
|
+
|
13
|
+
end # ~SubscriptionEstimate
|
14
14
|
end # ~ChargeBee
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
class ThirdPartyPaymentMethod < Model
|
3
|
-
|
4
|
-
attr_accessor :type, :gateway, :gateway_account_id, :reference_id
|
5
|
-
|
6
|
-
# OPERATIONS
|
7
|
-
#-----------
|
8
|
-
|
9
|
-
end # ~ThirdPartyPaymentMethod
|
1
|
+
module ChargeBee
|
2
|
+
class ThirdPartyPaymentMethod < Model
|
3
|
+
|
4
|
+
attr_accessor :type, :gateway, :gateway_account_id, :reference_id
|
5
|
+
|
6
|
+
# OPERATIONS
|
7
|
+
#-----------
|
8
|
+
|
9
|
+
end # ~ThirdPartyPaymentMethod
|
10
10
|
end # ~ChargeBee
|
@@ -1,47 +1,47 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
class TimeMachine < Model
|
3
|
-
|
4
|
-
attr_accessor :name, :time_travel_status, :genesis_time, :destination_time, :failure_code, :failure_reason,
|
5
|
-
:error_json
|
6
|
-
def wait_for_time_travel_completion(env = nil)
|
7
|
-
env = env || ChargeBee.default_env
|
8
|
-
sleeptime = env.time_machine_sleeptime
|
9
|
-
|
10
|
-
tm = (1..30).inject(self) do |time_machine|
|
11
|
-
break time_machine if time_machine.time_travel_status != "in_progress"
|
12
|
-
sleep(sleeptime)
|
13
|
-
self.class.retrieve(self.name, env).time_machine
|
14
|
-
end
|
15
|
-
|
16
|
-
# sync last fetched one with the current instance
|
17
|
-
new_values = tm.instance_variable_get("@values")
|
18
|
-
self.instance_variable_set("@values", new_values)
|
19
|
-
self.load(new_values)
|
20
|
-
|
21
|
-
case tm.time_travel_status
|
22
|
-
when "in_progress"
|
23
|
-
raise Error.new('The time travel is taking too much time')
|
24
|
-
when "failed"
|
25
|
-
json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
|
26
|
-
raise OperationFailedError.new(json_obj[:http_code], json_obj)
|
27
|
-
when "not_enabled", "_unknown"
|
28
|
-
raise Error.new("Time travel status is in wrong state #{self.time_travel_status}")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
# OPERATIONS
|
32
|
-
#-----------
|
33
|
-
|
34
|
-
def self.retrieve(id, env=nil, headers={})
|
35
|
-
Request.send('get', uri_path("time_machines",id.to_s), {}, env, headers)
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.start_afresh(id, params={}, env=nil, headers={})
|
39
|
-
Request.send('post', uri_path("time_machines",id.to_s,"start_afresh"), params, env, headers)
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.travel_forward(id, params={}, env=nil, headers={})
|
43
|
-
Request.send('post', uri_path("time_machines",id.to_s,"travel_forward"), params, env, headers)
|
44
|
-
end
|
45
|
-
|
46
|
-
end # ~TimeMachine
|
1
|
+
module ChargeBee
|
2
|
+
class TimeMachine < Model
|
3
|
+
|
4
|
+
attr_accessor :name, :time_travel_status, :genesis_time, :destination_time, :failure_code, :failure_reason,
|
5
|
+
:error_json
|
6
|
+
def wait_for_time_travel_completion(env = nil)
|
7
|
+
env = env || ChargeBee.default_env
|
8
|
+
sleeptime = env.time_machine_sleeptime
|
9
|
+
|
10
|
+
tm = (1..30).inject(self) do |time_machine|
|
11
|
+
break time_machine if time_machine.time_travel_status != "in_progress"
|
12
|
+
sleep(sleeptime)
|
13
|
+
self.class.retrieve(self.name, env).time_machine
|
14
|
+
end
|
15
|
+
|
16
|
+
# sync last fetched one with the current instance
|
17
|
+
new_values = tm.instance_variable_get("@values")
|
18
|
+
self.instance_variable_set("@values", new_values)
|
19
|
+
self.load(new_values)
|
20
|
+
|
21
|
+
case tm.time_travel_status
|
22
|
+
when "in_progress"
|
23
|
+
raise Error.new('The time travel is taking too much time')
|
24
|
+
when "failed"
|
25
|
+
json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
|
26
|
+
raise OperationFailedError.new(json_obj[:http_code], json_obj)
|
27
|
+
when "not_enabled", "_unknown"
|
28
|
+
raise Error.new("Time travel status is in wrong state #{self.time_travel_status}")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
# OPERATIONS
|
32
|
+
#-----------
|
33
|
+
|
34
|
+
def self.retrieve(id, env=nil, headers={})
|
35
|
+
Request.send('get', uri_path("time_machines",id.to_s), {}, env, headers)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.start_afresh(id, params={}, env=nil, headers={})
|
39
|
+
Request.send('post', uri_path("time_machines",id.to_s,"start_afresh"), params, env, headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.travel_forward(id, params={}, env=nil, headers={})
|
43
|
+
Request.send('post', uri_path("time_machines",id.to_s,"travel_forward"), params, env, headers)
|
44
|
+
end
|
45
|
+
|
46
|
+
end # ~TimeMachine
|
47
47
|
end # ~ChargeBee
|
@@ -1,63 +1,63 @@
|
|
1
|
-
module ChargeBee
|
2
|
-
class Transaction < Model
|
3
|
-
|
4
|
-
class LinkedInvoice < Model
|
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
|
10
|
-
end
|
11
|
-
|
12
|
-
class LinkedRefund < Model
|
13
|
-
attr_accessor :txn_id, :txn_status, :txn_date, :txn_amount
|
14
|
-
end
|
15
|
-
|
16
|
-
class LinkedPayment < Model
|
17
|
-
attr_accessor :id, :status, :amount, :date
|
18
|
-
end
|
19
|
-
|
20
|
-
attr_accessor :id, :customer_id, :subscription_id, :gateway_account_id, :payment_source_id,
|
21
|
-
:payment_method, :reference_number, :gateway, :type, :date, :settled_at, :currency_code, :amount,
|
22
|
-
:id_at_gateway, :status, :fraud_flag, :authorization_reason, :error_code, :error_text, :voided_at,
|
23
|
-
:resource_version, :updated_at, :fraud_reason, :amount_unused, :masked_card_number, :reference_transaction_id,
|
24
|
-
:refunded_txn_id, :reference_authorization_id, :amount_capturable, :reversal_transaction_id,
|
25
|
-
:linked_invoices, :linked_credit_notes, :linked_refunds, :linked_payments, :deleted
|
26
|
-
|
27
|
-
# OPERATIONS
|
28
|
-
#-----------
|
29
|
-
|
30
|
-
def self.create_authorization(params, env=nil, headers={})
|
31
|
-
Request.send('post', uri_path("transactions","create_authorization"), params, env, headers)
|
32
|
-
end
|
33
|
-
|
34
|
-
def self.void_transaction(id, env=nil, headers={})
|
35
|
-
Request.send('post', uri_path("transactions",id.to_s,"void"), {}, env, headers)
|
36
|
-
end
|
37
|
-
|
38
|
-
def self.list(params={}, env=nil, headers={})
|
39
|
-
Request.send_list_request('get', uri_path("transactions"), params, env, headers)
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.transactions_for_customer(id, params={}, env=nil, headers={})
|
43
|
-
Request.send('get', uri_path("customers",id.to_s,"transactions"), params, env, headers)
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.transactions_for_subscription(id, params={}, env=nil, headers={})
|
47
|
-
Request.send('get', uri_path("subscriptions",id.to_s,"transactions"), params, env, headers)
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.payments_for_invoice(id, params={}, env=nil, headers={})
|
51
|
-
Request.send('get', uri_path("invoices",id.to_s,"payments"), params, env, headers)
|
52
|
-
end
|
53
|
-
|
54
|
-
def self.retrieve(id, env=nil, headers={})
|
55
|
-
Request.send('get', uri_path("transactions",id.to_s), {}, env, headers)
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.delete_offline_transaction(id, params={}, env=nil, headers={})
|
59
|
-
Request.send('post', uri_path("transactions",id.to_s,"delete_offline_transaction"), params, env, headers)
|
60
|
-
end
|
61
|
-
|
62
|
-
end # ~Transaction
|
1
|
+
module ChargeBee
|
2
|
+
class Transaction < Model
|
3
|
+
|
4
|
+
class LinkedInvoice < Model
|
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
|
10
|
+
end
|
11
|
+
|
12
|
+
class LinkedRefund < Model
|
13
|
+
attr_accessor :txn_id, :txn_status, :txn_date, :txn_amount
|
14
|
+
end
|
15
|
+
|
16
|
+
class LinkedPayment < Model
|
17
|
+
attr_accessor :id, :status, :amount, :date
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_accessor :id, :customer_id, :subscription_id, :gateway_account_id, :payment_source_id,
|
21
|
+
:payment_method, :reference_number, :gateway, :type, :date, :settled_at, :currency_code, :amount,
|
22
|
+
:id_at_gateway, :status, :fraud_flag, :authorization_reason, :error_code, :error_text, :voided_at,
|
23
|
+
:resource_version, :updated_at, :fraud_reason, :amount_unused, :masked_card_number, :reference_transaction_id,
|
24
|
+
:refunded_txn_id, :reference_authorization_id, :amount_capturable, :reversal_transaction_id,
|
25
|
+
:linked_invoices, :linked_credit_notes, :linked_refunds, :linked_payments, :deleted
|
26
|
+
|
27
|
+
# OPERATIONS
|
28
|
+
#-----------
|
29
|
+
|
30
|
+
def self.create_authorization(params, env=nil, headers={})
|
31
|
+
Request.send('post', uri_path("transactions","create_authorization"), params, env, headers)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.void_transaction(id, env=nil, headers={})
|
35
|
+
Request.send('post', uri_path("transactions",id.to_s,"void"), {}, env, headers)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.list(params={}, env=nil, headers={})
|
39
|
+
Request.send_list_request('get', uri_path("transactions"), params, env, headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.transactions_for_customer(id, params={}, env=nil, headers={})
|
43
|
+
Request.send('get', uri_path("customers",id.to_s,"transactions"), params, env, headers)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.transactions_for_subscription(id, params={}, env=nil, headers={})
|
47
|
+
Request.send('get', uri_path("subscriptions",id.to_s,"transactions"), params, env, headers)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.payments_for_invoice(id, params={}, env=nil, headers={})
|
51
|
+
Request.send('get', uri_path("invoices",id.to_s,"payments"), params, env, headers)
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.retrieve(id, env=nil, headers={})
|
55
|
+
Request.send('get', uri_path("transactions",id.to_s), {}, env, headers)
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.delete_offline_transaction(id, params={}, env=nil, headers={})
|
59
|
+
Request.send('post', uri_path("transactions",id.to_s,"delete_offline_transaction"), params, env, headers)
|
60
|
+
end
|
61
|
+
|
62
|
+
end # ~Transaction
|
63
63
|
end # ~ChargeBee
|