chargebee 2.6.4 → 2.6.6

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1524 -1488
  3. data/LICENSE +24 -24
  4. data/README.rdoc +41 -41
  5. data/chargebee.gemspec +4 -3
  6. data/lib/chargebee.rb +85 -85
  7. data/lib/chargebee/environment.rb +28 -28
  8. data/lib/chargebee/errors.rb +43 -43
  9. data/lib/chargebee/models/addon.rb +45 -45
  10. data/lib/chargebee/models/address.rb +18 -18
  11. data/lib/chargebee/models/card.rb +32 -32
  12. data/lib/chargebee/models/comment.rb +25 -25
  13. data/lib/chargebee/models/contact.rb +10 -10
  14. data/lib/chargebee/models/coupon.rb +40 -40
  15. data/lib/chargebee/models/coupon_code.rb +25 -25
  16. data/lib/chargebee/models/coupon_set.rb +37 -37
  17. data/lib/chargebee/models/credit_note.rb +77 -77
  18. data/lib/chargebee/models/credit_note_estimate.rb +35 -35
  19. data/lib/chargebee/models/customer.rb +137 -120
  20. data/lib/chargebee/models/download.rb +9 -9
  21. data/lib/chargebee/models/estimate.rb +46 -46
  22. data/lib/chargebee/models/event.rb +45 -45
  23. data/lib/chargebee/models/export.rb +86 -86
  24. data/lib/chargebee/models/gift.rb +42 -42
  25. data/lib/chargebee/models/hierarchy.rb +10 -0
  26. data/lib/chargebee/models/hosted_page.rb +77 -77
  27. data/lib/chargebee/models/invoice.rb +172 -172
  28. data/lib/chargebee/models/invoice_estimate.rb +35 -35
  29. data/lib/chargebee/models/model.rb +101 -101
  30. data/lib/chargebee/models/order.rb +76 -76
  31. data/lib/chargebee/models/payment_source.rb +79 -71
  32. data/lib/chargebee/models/plan.rb +60 -59
  33. data/lib/chargebee/models/portal_session.rb +30 -30
  34. data/lib/chargebee/models/promotional_credit.rb +30 -30
  35. data/lib/chargebee/models/quote.rb +72 -72
  36. data/lib/chargebee/models/resource_migration.rb +13 -13
  37. data/lib/chargebee/models/site_migration_detail.rb +14 -14
  38. data/lib/chargebee/models/subscription.rb +137 -137
  39. data/lib/chargebee/models/subscription_estimate.rb +13 -13
  40. data/lib/chargebee/models/third_party_payment_method.rb +9 -9
  41. data/lib/chargebee/models/time_machine.rb +46 -46
  42. data/lib/chargebee/models/token.rb +11 -0
  43. data/lib/chargebee/models/transaction.rb +62 -62
  44. data/lib/chargebee/models/unbilled_charge.rb +31 -31
  45. data/lib/chargebee/models/virtual_bank_account.rb +30 -26
  46. data/lib/chargebee/request.rb +27 -27
  47. data/lib/chargebee/rest.rb +92 -92
  48. data/lib/chargebee/result.rb +255 -240
  49. data/spec/errors_spec.rb +23 -23
  50. data/spec/sample_response.rb +73 -73
  51. metadata +5 -4
  52. data/lib/chargebee/.DS_Store +0 -0
@@ -1,10 +1,10 @@
1
- module ChargeBee
2
- class Download < Model
3
-
4
- attr_accessor :download_url, :valid_till
5
-
6
- # OPERATIONS
7
- #-----------
8
-
9
- end # ~Download
1
+ module ChargeBee
2
+ class Download < Model
3
+
4
+ attr_accessor :download_url, :valid_till
5
+
6
+ # OPERATIONS
7
+ #-----------
8
+
9
+ end # ~Download
10
10
  end # ~ChargeBee
@@ -1,47 +1,47 @@
1
- module ChargeBee
2
- class Estimate < Model
3
-
4
- attr_accessor :created_at, :subscription_estimate, :invoice_estimate, :invoice_estimates, :next_invoice_estimate,
5
- :credit_note_estimates, :unbilled_charge_estimates
6
-
7
- # OPERATIONS
8
- #-----------
9
-
10
- def self.create_subscription(params, env=nil, headers={})
11
- Request.send('post', uri_path("estimates","create_subscription"), params, env, headers)
12
- end
13
-
14
- def self.create_sub_for_customer_estimate(id, params, env=nil, headers={})
15
- Request.send('get', uri_path("customers",id.to_s,"create_subscription_estimate"), params, env, headers)
16
- end
17
-
18
- def self.update_subscription(params, env=nil, headers={})
19
- Request.send('post', uri_path("estimates","update_subscription"), params, env, headers)
20
- end
21
-
22
- def self.renewal_estimate(id, params={}, env=nil, headers={})
23
- Request.send('get', uri_path("subscriptions",id.to_s,"renewal_estimate"), params, env, headers)
24
- end
25
-
26
- def self.upcoming_invoices_estimate(id, env=nil, headers={})
27
- Request.send('get', uri_path("customers",id.to_s,"upcoming_invoices_estimate"), {}, env, headers)
28
- end
29
-
30
- def self.change_term_end(id, params={}, env=nil, headers={})
31
- Request.send('post', uri_path("subscriptions",id.to_s,"change_term_end_estimate"), params, env, headers)
32
- end
33
-
34
- def self.cancel_subscription(id, params={}, env=nil, headers={})
35
- Request.send('post', uri_path("subscriptions",id.to_s,"cancel_subscription_estimate"), params, env, headers)
36
- end
37
-
38
- def self.pause_subscription(id, params={}, env=nil, headers={})
39
- Request.send('post', uri_path("subscriptions",id.to_s,"pause_subscription_estimate"), params, env, headers)
40
- end
41
-
42
- def self.resume_subscription(id, params={}, env=nil, headers={})
43
- Request.send('post', uri_path("subscriptions",id.to_s,"resume_subscription_estimate"), params, env, headers)
44
- end
45
-
46
- end # ~Estimate
1
+ module ChargeBee
2
+ class Estimate < Model
3
+
4
+ attr_accessor :created_at, :subscription_estimate, :invoice_estimate, :invoice_estimates, :next_invoice_estimate,
5
+ :credit_note_estimates, :unbilled_charge_estimates
6
+
7
+ # OPERATIONS
8
+ #-----------
9
+
10
+ def self.create_subscription(params, env=nil, headers={})
11
+ Request.send('post', uri_path("estimates","create_subscription"), params, env, headers)
12
+ end
13
+
14
+ def self.create_sub_for_customer_estimate(id, params, env=nil, headers={})
15
+ Request.send('get', uri_path("customers",id.to_s,"create_subscription_estimate"), params, env, headers)
16
+ end
17
+
18
+ def self.update_subscription(params, env=nil, headers={})
19
+ Request.send('post', uri_path("estimates","update_subscription"), params, env, headers)
20
+ end
21
+
22
+ def self.renewal_estimate(id, params={}, env=nil, headers={})
23
+ Request.send('get', uri_path("subscriptions",id.to_s,"renewal_estimate"), params, env, headers)
24
+ end
25
+
26
+ def self.upcoming_invoices_estimate(id, env=nil, headers={})
27
+ Request.send('get', uri_path("customers",id.to_s,"upcoming_invoices_estimate"), {}, env, headers)
28
+ end
29
+
30
+ def self.change_term_end(id, params={}, env=nil, headers={})
31
+ Request.send('post', uri_path("subscriptions",id.to_s,"change_term_end_estimate"), params, env, headers)
32
+ end
33
+
34
+ def self.cancel_subscription(id, params={}, env=nil, headers={})
35
+ Request.send('post', uri_path("subscriptions",id.to_s,"cancel_subscription_estimate"), params, env, headers)
36
+ end
37
+
38
+ def self.pause_subscription(id, params={}, env=nil, headers={})
39
+ Request.send('post', uri_path("subscriptions",id.to_s,"pause_subscription_estimate"), params, env, headers)
40
+ end
41
+
42
+ def self.resume_subscription(id, params={}, env=nil, headers={})
43
+ Request.send('post', uri_path("subscriptions",id.to_s,"resume_subscription_estimate"), params, env, headers)
44
+ end
45
+
46
+ end # ~Estimate
47
47
  end # ~ChargeBee
@@ -1,46 +1,46 @@
1
- module ChargeBee
2
- class Event < Model
3
-
4
- class Webhook < Model
5
- attr_accessor :id, :webhook_status
6
- end
7
-
8
- attr_accessor :id, :occurred_at, :source, :user, :webhook_status, :webhook_failure_reason, :webhooks,
9
- :event_type, :api_version
10
-
11
- class Content < Result
12
- end
13
-
14
- def content
15
- Content.new(@values[:content])
16
- end
17
-
18
- def self.deserialize(json)
19
- begin
20
- webhook_data = JSON.parse(json)
21
- rescue JSON::ParserError => e
22
- raise Error.new("Invalid webhook object to deserialize. #{e}",e)
23
- end
24
-
25
- api_version = webhook_data["api_version"]
26
- if api_version != nil && api_version.casecmp(Environment::API_VERSION) != 0
27
- raise Error.new("API version [#{api_version.upcase}] in response does not match with client library API version [#{Environment::API_VERSION.upcase}]")
28
- end
29
-
30
- webhook_data = Util.symbolize_keys(webhook_data)
31
- Event.construct(webhook_data)
32
- end
33
-
34
- # OPERATIONS
35
- #-----------
36
-
37
- def self.list(params={}, env=nil, headers={})
38
- Request.send_list_request('get', uri_path("events"), params, env, headers)
39
- end
40
-
41
- def self.retrieve(id, env=nil, headers={})
42
- Request.send('get', uri_path("events",id.to_s), {}, env, headers)
43
- end
44
-
45
- end # ~Event
1
+ module ChargeBee
2
+ class Event < Model
3
+
4
+ class Webhook < Model
5
+ attr_accessor :id, :webhook_status
6
+ end
7
+
8
+ attr_accessor :id, :occurred_at, :source, :user, :webhook_status, :webhook_failure_reason, :webhooks,
9
+ :event_type, :api_version
10
+
11
+ class Content < Result
12
+ end
13
+
14
+ def content
15
+ Content.new(@values[:content])
16
+ end
17
+
18
+ def self.deserialize(json)
19
+ begin
20
+ webhook_data = JSON.parse(json)
21
+ rescue JSON::ParserError => e
22
+ raise Error.new("Invalid webhook object to deserialize. #{e}",e)
23
+ end
24
+
25
+ api_version = webhook_data["api_version"]
26
+ if api_version != nil && api_version.casecmp(Environment::API_VERSION) != 0
27
+ raise Error.new("API version [#{api_version.upcase}] in response does not match with client library API version [#{Environment::API_VERSION.upcase}]")
28
+ end
29
+
30
+ webhook_data = Util.symbolize_keys(webhook_data)
31
+ Event.construct(webhook_data)
32
+ end
33
+
34
+ # OPERATIONS
35
+ #-----------
36
+
37
+ def self.list(params={}, env=nil, headers={})
38
+ Request.send_list_request('get', uri_path("events"), params, env, headers)
39
+ end
40
+
41
+ def self.retrieve(id, env=nil, headers={})
42
+ Request.send('get', uri_path("events",id.to_s), {}, env, headers)
43
+ end
44
+
45
+ end # ~Event
46
46
  end # ~ChargeBee
@@ -1,87 +1,87 @@
1
- module ChargeBee
2
- class Export < Model
3
-
4
- class Download < Model
5
- attr_accessor :download_url, :valid_till
6
- end
7
-
8
- attr_accessor :id, :operation_type, :mime_type, :status, :created_at, :download
9
- def wait_for_export_completion(env = nil, headers={})
10
- env = env || ChargeBee.default_env
11
- sleeptime = env.export_sleeptime
12
-
13
- export_final = (1..50).inject(self) do |export|
14
- break export if export.status != "in_process"
15
- sleep(sleeptime)
16
- self.class.retrieve(self.id, env, headers).export
17
- end
18
-
19
- # sync last fetched one with the current instance
20
- new_values = export_final.instance_variable_get("@values")
21
- self.instance_variable_set("@values", new_values)
22
- self.load(new_values)
23
-
24
- case export_final.status
25
- when "in_process"
26
- raise Error.new('Export is taking too long')
27
- when "failed"
28
- json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
29
- raise OperationFailedError.new(json_obj[:http_code], json_obj)
30
- when "not_enabled", "_unknown"
31
- raise Error.new("Export status is in wrong state #{self.status}")
32
- end
33
- end
34
-
35
- # OPERATIONS
36
- #-----------
37
-
38
- def self.retrieve(id, env=nil, headers={})
39
- Request.send('get', uri_path("exports",id.to_s), {}, env, headers)
40
- end
41
-
42
- def self.revenue_recognition(params, env=nil, headers={})
43
- Request.send('post', uri_path("exports","revenue_recognition"), params, env, headers)
44
- end
45
-
46
- def self.deferred_revenue(params, env=nil, headers={})
47
- Request.send('post', uri_path("exports","deferred_revenue"), params, env, headers)
48
- end
49
-
50
- def self.plans(params={}, env=nil, headers={})
51
- Request.send('post', uri_path("exports","plans"), params, env, headers)
52
- end
53
-
54
- def self.addons(params={}, env=nil, headers={})
55
- Request.send('post', uri_path("exports","addons"), params, env, headers)
56
- end
57
-
58
- def self.coupons(params={}, env=nil, headers={})
59
- Request.send('post', uri_path("exports","coupons"), params, env, headers)
60
- end
61
-
62
- def self.customers(params={}, env=nil, headers={})
63
- Request.send('post', uri_path("exports","customers"), params, env, headers)
64
- end
65
-
66
- def self.subscriptions(params={}, env=nil, headers={})
67
- Request.send('post', uri_path("exports","subscriptions"), params, env, headers)
68
- end
69
-
70
- def self.invoices(params={}, env=nil, headers={})
71
- Request.send('post', uri_path("exports","invoices"), params, env, headers)
72
- end
73
-
74
- def self.credit_notes(params={}, env=nil, headers={})
75
- Request.send('post', uri_path("exports","credit_notes"), params, env, headers)
76
- end
77
-
78
- def self.transactions(params={}, env=nil, headers={})
79
- Request.send('post', uri_path("exports","transactions"), params, env, headers)
80
- end
81
-
82
- def self.orders(params={}, env=nil, headers={})
83
- Request.send('post', uri_path("exports","orders"), params, env, headers)
84
- end
85
-
86
- end # ~Export
1
+ module ChargeBee
2
+ class Export < Model
3
+
4
+ class Download < Model
5
+ attr_accessor :download_url, :valid_till
6
+ end
7
+
8
+ attr_accessor :id, :operation_type, :mime_type, :status, :created_at, :download
9
+ def wait_for_export_completion(env = nil, headers={})
10
+ env = env || ChargeBee.default_env
11
+ sleeptime = env.export_sleeptime
12
+
13
+ export_final = (1..50).inject(self) do |export|
14
+ break export if export.status != "in_process"
15
+ sleep(sleeptime)
16
+ self.class.retrieve(self.id, env, headers).export
17
+ end
18
+
19
+ # sync last fetched one with the current instance
20
+ new_values = export_final.instance_variable_get("@values")
21
+ self.instance_variable_set("@values", new_values)
22
+ self.load(new_values)
23
+
24
+ case export_final.status
25
+ when "in_process"
26
+ raise Error.new('Export is taking too long')
27
+ when "failed"
28
+ json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
29
+ raise OperationFailedError.new(json_obj[:http_code], json_obj)
30
+ when "not_enabled", "_unknown"
31
+ raise Error.new("Export status is in wrong state #{self.status}")
32
+ end
33
+ end
34
+
35
+ # OPERATIONS
36
+ #-----------
37
+
38
+ def self.retrieve(id, env=nil, headers={})
39
+ Request.send('get', uri_path("exports",id.to_s), {}, env, headers)
40
+ end
41
+
42
+ def self.revenue_recognition(params, env=nil, headers={})
43
+ Request.send('post', uri_path("exports","revenue_recognition"), params, env, headers)
44
+ end
45
+
46
+ def self.deferred_revenue(params, env=nil, headers={})
47
+ Request.send('post', uri_path("exports","deferred_revenue"), params, env, headers)
48
+ end
49
+
50
+ def self.plans(params={}, env=nil, headers={})
51
+ Request.send('post', uri_path("exports","plans"), params, env, headers)
52
+ end
53
+
54
+ def self.addons(params={}, env=nil, headers={})
55
+ Request.send('post', uri_path("exports","addons"), params, env, headers)
56
+ end
57
+
58
+ def self.coupons(params={}, env=nil, headers={})
59
+ Request.send('post', uri_path("exports","coupons"), params, env, headers)
60
+ end
61
+
62
+ def self.customers(params={}, env=nil, headers={})
63
+ Request.send('post', uri_path("exports","customers"), params, env, headers)
64
+ end
65
+
66
+ def self.subscriptions(params={}, env=nil, headers={})
67
+ Request.send('post', uri_path("exports","subscriptions"), params, env, headers)
68
+ end
69
+
70
+ def self.invoices(params={}, env=nil, headers={})
71
+ Request.send('post', uri_path("exports","invoices"), params, env, headers)
72
+ end
73
+
74
+ def self.credit_notes(params={}, env=nil, headers={})
75
+ Request.send('post', uri_path("exports","credit_notes"), params, env, headers)
76
+ end
77
+
78
+ def self.transactions(params={}, env=nil, headers={})
79
+ Request.send('post', uri_path("exports","transactions"), params, env, headers)
80
+ end
81
+
82
+ def self.orders(params={}, env=nil, headers={})
83
+ Request.send('post', uri_path("exports","orders"), params, env, headers)
84
+ end
85
+
86
+ end # ~Export
87
87
  end # ~ChargeBee
@@ -1,43 +1,43 @@
1
- module ChargeBee
2
- class Gift < Model
3
-
4
- class Gifter < Model
5
- attr_accessor :customer_id, :invoice_id, :signature, :note
6
- end
7
-
8
- class GiftReceiver < Model
9
- attr_accessor :customer_id, :subscription_id, :first_name, :last_name, :email
10
- end
11
-
12
- class GiftTimeline < Model
13
- attr_accessor :status, :occurred_at
14
- end
15
-
16
- attr_accessor :id, :status, :scheduled_at, :auto_claim, :claim_expiry_date, :resource_version,
17
- :updated_at, :gifter, :gift_receiver, :gift_timelines
18
-
19
- # OPERATIONS
20
- #-----------
21
-
22
- def self.create(params, env=nil, headers={})
23
- Request.send('post', uri_path("gifts"), params, env, headers)
24
- end
25
-
26
- def self.retrieve(id, env=nil, headers={})
27
- Request.send('get', uri_path("gifts",id.to_s), {}, env, headers)
28
- end
29
-
30
- def self.list(params={}, env=nil, headers={})
31
- Request.send_list_request('get', uri_path("gifts"), params, env, headers)
32
- end
33
-
34
- def self.claim(id, env=nil, headers={})
35
- Request.send('post', uri_path("gifts",id.to_s,"claim"), {}, env, headers)
36
- end
37
-
38
- def self.cancel(id, env=nil, headers={})
39
- Request.send('post', uri_path("gifts",id.to_s,"cancel"), {}, env, headers)
40
- end
41
-
42
- end # ~Gift
1
+ module ChargeBee
2
+ class Gift < Model
3
+
4
+ class Gifter < Model
5
+ attr_accessor :customer_id, :invoice_id, :signature, :note
6
+ end
7
+
8
+ class GiftReceiver < Model
9
+ attr_accessor :customer_id, :subscription_id, :first_name, :last_name, :email
10
+ end
11
+
12
+ class GiftTimeline < Model
13
+ attr_accessor :status, :occurred_at
14
+ end
15
+
16
+ attr_accessor :id, :status, :scheduled_at, :auto_claim, :claim_expiry_date, :resource_version,
17
+ :updated_at, :gifter, :gift_receiver, :gift_timelines
18
+
19
+ # OPERATIONS
20
+ #-----------
21
+
22
+ def self.create(params, env=nil, headers={})
23
+ Request.send('post', uri_path("gifts"), params, env, headers)
24
+ end
25
+
26
+ def self.retrieve(id, env=nil, headers={})
27
+ Request.send('get', uri_path("gifts",id.to_s), {}, env, headers)
28
+ end
29
+
30
+ def self.list(params={}, env=nil, headers={})
31
+ Request.send_list_request('get', uri_path("gifts"), params, env, headers)
32
+ end
33
+
34
+ def self.claim(id, env=nil, headers={})
35
+ Request.send('post', uri_path("gifts",id.to_s,"claim"), {}, env, headers)
36
+ end
37
+
38
+ def self.cancel(id, env=nil, headers={})
39
+ Request.send('post', uri_path("gifts",id.to_s,"cancel"), {}, env, headers)
40
+ end
41
+
42
+ end # ~Gift
43
43
  end # ~ChargeBee