chargebee 2.6.4 → 2.6.6

Sign up to get free protection for your applications and to get access to all the features.
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