chargebee 2.6.4 → 2.6.5

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1501 -1488
  3. data/LICENSE +24 -24
  4. data/README.rdoc +41 -41
  5. data/chargebee.gemspec +2 -3
  6. data/lib/chargebee/environment.rb +28 -28
  7. data/lib/chargebee/errors.rb +43 -43
  8. data/lib/chargebee/models/addon.rb +45 -45
  9. data/lib/chargebee/models/address.rb +18 -18
  10. data/lib/chargebee/models/card.rb +32 -32
  11. data/lib/chargebee/models/comment.rb +25 -25
  12. data/lib/chargebee/models/contact.rb +10 -10
  13. data/lib/chargebee/models/coupon.rb +40 -40
  14. data/lib/chargebee/models/coupon_code.rb +25 -25
  15. data/lib/chargebee/models/coupon_set.rb +37 -37
  16. data/lib/chargebee/models/credit_note.rb +77 -77
  17. data/lib/chargebee/models/credit_note_estimate.rb +35 -35
  18. data/lib/chargebee/models/customer.rb +120 -120
  19. data/lib/chargebee/models/download.rb +9 -9
  20. data/lib/chargebee/models/estimate.rb +46 -46
  21. data/lib/chargebee/models/event.rb +45 -45
  22. data/lib/chargebee/models/export.rb +86 -86
  23. data/lib/chargebee/models/gift.rb +42 -42
  24. data/lib/chargebee/models/hosted_page.rb +77 -77
  25. data/lib/chargebee/models/invoice.rb +172 -172
  26. data/lib/chargebee/models/invoice_estimate.rb +35 -35
  27. data/lib/chargebee/models/model.rb +101 -101
  28. data/lib/chargebee/models/order.rb +76 -76
  29. data/lib/chargebee/models/payment_source.rb +75 -71
  30. data/lib/chargebee/models/plan.rb +60 -59
  31. data/lib/chargebee/models/portal_session.rb +30 -30
  32. data/lib/chargebee/models/promotional_credit.rb +30 -30
  33. data/lib/chargebee/models/quote.rb +72 -72
  34. data/lib/chargebee/models/resource_migration.rb +13 -13
  35. data/lib/chargebee/models/site_migration_detail.rb +14 -14
  36. data/lib/chargebee/models/subscription.rb +137 -137
  37. data/lib/chargebee/models/subscription_estimate.rb +13 -13
  38. data/lib/chargebee/models/third_party_payment_method.rb +9 -9
  39. data/lib/chargebee/models/time_machine.rb +46 -46
  40. data/lib/chargebee/models/transaction.rb +62 -62
  41. data/lib/chargebee/models/unbilled_charge.rb +31 -31
  42. data/lib/chargebee/models/virtual_bank_account.rb +30 -26
  43. data/lib/chargebee/request.rb +27 -27
  44. data/lib/chargebee/rest.rb +92 -92
  45. data/lib/chargebee/result.rb +240 -240
  46. data/lib/chargebee.rb +85 -85
  47. data/spec/errors_spec.rb +23 -23
  48. data/spec/sample_response.rb +73 -73
  49. metadata +3 -4
  50. data/lib/chargebee/.DS_Store +0 -0
@@ -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
@@ -1,32 +1,32 @@
1
- module ChargeBee
2
- class UnbilledCharge < Model
3
-
4
- class Tier < Model
5
- attr_accessor :starting_unit, :ending_unit, :quantity_used, :unit_amount
6
- end
7
-
8
- attr_accessor :id, :customer_id, :subscription_id, :date_from, :date_to, :unit_amount, :pricing_model,
9
- :quantity, :amount, :currency_code, :discount_amount, :description, :entity_type, :entity_id,
10
- :is_voided, :voided_at, :tiers, :deleted
11
-
12
- # OPERATIONS
13
- #-----------
14
-
15
- def self.invoice_unbilled_charges(params={}, env=nil, headers={})
16
- Request.send('post', uri_path("unbilled_charges","invoice_unbilled_charges"), params, env, headers)
17
- end
18
-
19
- def self.delete(id, env=nil, headers={})
20
- Request.send('post', uri_path("unbilled_charges",id.to_s,"delete"), {}, env, headers)
21
- end
22
-
23
- def self.list(params={}, env=nil, headers={})
24
- Request.send_list_request('get', uri_path("unbilled_charges"), params, env, headers)
25
- end
26
-
27
- def self.invoice_now_estimate(params={}, env=nil, headers={})
28
- Request.send('post', uri_path("unbilled_charges","invoice_now_estimate"), params, env, headers)
29
- end
30
-
31
- end # ~UnbilledCharge
1
+ module ChargeBee
2
+ class UnbilledCharge < Model
3
+
4
+ class Tier < Model
5
+ attr_accessor :starting_unit, :ending_unit, :quantity_used, :unit_amount
6
+ end
7
+
8
+ attr_accessor :id, :customer_id, :subscription_id, :date_from, :date_to, :unit_amount, :pricing_model,
9
+ :quantity, :amount, :currency_code, :discount_amount, :description, :entity_type, :entity_id,
10
+ :is_voided, :voided_at, :tiers, :deleted
11
+
12
+ # OPERATIONS
13
+ #-----------
14
+
15
+ def self.invoice_unbilled_charges(params={}, env=nil, headers={})
16
+ Request.send('post', uri_path("unbilled_charges","invoice_unbilled_charges"), params, env, headers)
17
+ end
18
+
19
+ def self.delete(id, env=nil, headers={})
20
+ Request.send('post', uri_path("unbilled_charges",id.to_s,"delete"), {}, env, headers)
21
+ end
22
+
23
+ def self.list(params={}, env=nil, headers={})
24
+ Request.send_list_request('get', uri_path("unbilled_charges"), params, env, headers)
25
+ end
26
+
27
+ def self.invoice_now_estimate(params={}, env=nil, headers={})
28
+ Request.send('post', uri_path("unbilled_charges","invoice_now_estimate"), params, env, headers)
29
+ end
30
+
31
+ end # ~UnbilledCharge
32
32
  end # ~ChargeBee
@@ -1,27 +1,31 @@
1
- module ChargeBee
2
- class VirtualBankAccount < Model
3
-
4
- attr_accessor :id, :customer_id, :email, :bank_name, :account_number, :routing_number, :swift_code,
5
- :gateway, :gateway_account_id, :resource_version, :updated_at, :created_at, :reference_id, :deleted
6
-
7
- # OPERATIONS
8
- #-----------
9
-
10
- def self.create_using_permanent_token(params, env=nil, headers={})
11
- Request.send('post', uri_path("virtual_bank_accounts","create_using_permanent_token"), params, env, headers)
12
- end
13
-
14
- def self.create(params, env=nil, headers={})
15
- Request.send('post', uri_path("virtual_bank_accounts"), params, env, headers)
16
- end
17
-
18
- def self.retrieve(id, env=nil, headers={})
19
- Request.send('get', uri_path("virtual_bank_accounts",id.to_s), {}, env, headers)
20
- end
21
-
22
- def self.list(params={}, env=nil, headers={})
23
- Request.send_list_request('get', uri_path("virtual_bank_accounts"), params, env, headers)
24
- end
25
-
26
- end # ~VirtualBankAccount
1
+ module ChargeBee
2
+ class VirtualBankAccount < Model
3
+
4
+ attr_accessor :id, :customer_id, :email, :bank_name, :account_number, :routing_number, :swift_code,
5
+ :gateway, :gateway_account_id, :resource_version, :updated_at, :created_at, :reference_id, :deleted
6
+
7
+ # OPERATIONS
8
+ #-----------
9
+
10
+ def self.create_using_permanent_token(params, env=nil, headers={})
11
+ Request.send('post', uri_path("virtual_bank_accounts","create_using_permanent_token"), params, env, headers)
12
+ end
13
+
14
+ def self.create(params, env=nil, headers={})
15
+ Request.send('post', uri_path("virtual_bank_accounts"), params, env, headers)
16
+ end
17
+
18
+ def self.retrieve(id, env=nil, headers={})
19
+ Request.send('get', uri_path("virtual_bank_accounts",id.to_s), {}, env, headers)
20
+ end
21
+
22
+ def self.list(params={}, env=nil, headers={})
23
+ Request.send_list_request('get', uri_path("virtual_bank_accounts"), params, env, headers)
24
+ end
25
+
26
+ def self.delete_local(id, env=nil, headers={})
27
+ Request.send('post', uri_path("virtual_bank_accounts",id.to_s,"delete_local"), {}, env, headers)
28
+ end
29
+
30
+ end # ~VirtualBankAccount
27
31
  end # ~ChargeBee
@@ -1,27 +1,27 @@
1
- module ChargeBee
2
- class Request
3
-
4
- def self.send_list_request(method, url, params={}, env=nil, headers={})
5
- serialized = {}
6
- params.each do |k, v|
7
- if(v.kind_of? Array)
8
- v = v.to_json
9
- end
10
- serialized["#{k}"] = v
11
- end
12
- self.send(method, url, serialized, env, headers)
13
- end
14
-
15
- def self.send(method, url, params={}, env=nil, headers={})
16
- env ||= ChargeBee.default_env
17
- ser_params = Util.serialize(params)
18
- resp = Rest.request(method, url, env, ser_params||={}, headers)
19
- if resp.has_key?(:list)
20
- ListResult.new(resp[:list], resp[:next_offset])
21
- else
22
- Result.new(resp)
23
- end
24
- end
25
-
26
- end
27
- end
1
+ module ChargeBee
2
+ class Request
3
+
4
+ def self.send_list_request(method, url, params={}, env=nil, headers={})
5
+ serialized = {}
6
+ params.each do |k, v|
7
+ if(v.kind_of? Array)
8
+ v = v.to_json
9
+ end
10
+ serialized["#{k}"] = v
11
+ end
12
+ self.send(method, url, serialized, env, headers)
13
+ end
14
+
15
+ def self.send(method, url, params={}, env=nil, headers={})
16
+ env ||= ChargeBee.default_env
17
+ ser_params = Util.serialize(params)
18
+ resp = Rest.request(method, url, env, ser_params||={}, headers)
19
+ if resp.has_key?(:list)
20
+ ListResult.new(resp[:list], resp[:next_offset])
21
+ else
22
+ Result.new(resp)
23
+ end
24
+ end
25
+
26
+ end
27
+ end
@@ -1,92 +1,92 @@
1
- require 'rest_client'
2
- require 'json'
3
-
4
- module ChargeBee
5
- module Rest
6
-
7
- def self.request(method, url, env, params=nil, headers={})
8
- raise Error.new('No environment configured.') unless env
9
- api_key = env.api_key
10
-
11
- if(ChargeBee.verify_ca_certs?)
12
- ssl_opts = {
13
- :verify_ssl => OpenSSL::SSL::VERIFY_PEER,
14
- :ssl_ca_file => ChargeBee.ca_cert_path
15
- }
16
- else
17
- ssl_opts = {
18
- :verify_ssl => false
19
- }
20
- end
21
- case method.to_s.downcase.to_sym
22
- when :get, :head, :delete
23
- headers = { :params => params }.merge(headers)
24
- payload = nil
25
- else
26
- payload = params
27
- end
28
-
29
- user_agent = ChargeBee.user_agent
30
- headers = {
31
- "User-Agent" => user_agent,
32
- :accept => :json,
33
- "Lang-Version" => RUBY_VERSION,
34
- "OS-Version" => RUBY_PLATFORM
35
- }.merge(headers)
36
- opts = {
37
- :method => method,
38
- :url => env.api_url(url),
39
- :user => api_key,
40
- :headers => headers,
41
- :payload => payload,
42
- :open_timeout => 50,
43
- :timeout => 100
44
- }.merge(ssl_opts)
45
-
46
- begin
47
- response = RestClient::Request.execute(opts)
48
- rescue RestClient::ExceptionWithResponse => e
49
- if rcode = e.http_code and rbody = e.http_body
50
- raise handle_for_error(e, rcode, rbody)
51
- else
52
- raise IOError.new("IO Exception when trying to connect to chargebee with url #{opts[:url]} . Reason #{e}",e)
53
- end
54
- rescue Exception => e
55
- raise IOError.new("IO Exception when trying to connect to chargebee with url #{opts[:url]} . Reason #{e}",e)
56
- end
57
- rbody = response.body
58
- rcode = response.code
59
- begin
60
- resp = JSON.parse(rbody)
61
- rescue Exception => e
62
- raise Error.new("Response not in JSON format. Probably not a ChargeBee response \n #{rbody.inspect}",e)
63
- end
64
- resp = Util.symbolize_keys(resp)
65
- resp
66
- end
67
-
68
- def self.handle_for_error(e, rcode=nil, rbody=nil)
69
- if(rcode == 204)
70
- raise Error.new("No response returned by the chargebee api. The http status code is #{rcode}")
71
- end
72
- begin
73
- error_obj = JSON.parse(rbody)
74
- error_obj = Util.symbolize_keys(error_obj)
75
- rescue Exception => e
76
- raise Error.new("Error response not in JSON format. The http status code is #{rcode} \n #{rbody.inspect}",e)
77
- end
78
- type = error_obj[:type]
79
- if("payment" == type)
80
- raise PaymentError.new(rcode, error_obj)
81
- elsif("operation_failed" == type)
82
- raise OperationFailedError.new(rcode, error_obj)
83
- elsif("invalid_request" == type)
84
- raise InvalidRequestError.new(rcode, error_obj)
85
- else
86
- raise APIError.new(rcode, error_obj)
87
- end
88
-
89
- end
90
-
91
- end
92
- end
1
+ require 'rest_client'
2
+ require 'json'
3
+
4
+ module ChargeBee
5
+ module Rest
6
+
7
+ def self.request(method, url, env, params=nil, headers={})
8
+ raise Error.new('No environment configured.') unless env
9
+ api_key = env.api_key
10
+
11
+ if(ChargeBee.verify_ca_certs?)
12
+ ssl_opts = {
13
+ :verify_ssl => OpenSSL::SSL::VERIFY_PEER,
14
+ :ssl_ca_file => ChargeBee.ca_cert_path
15
+ }
16
+ else
17
+ ssl_opts = {
18
+ :verify_ssl => false
19
+ }
20
+ end
21
+ case method.to_s.downcase.to_sym
22
+ when :get, :head, :delete
23
+ headers = { :params => params }.merge(headers)
24
+ payload = nil
25
+ else
26
+ payload = params
27
+ end
28
+
29
+ user_agent = ChargeBee.user_agent
30
+ headers = {
31
+ "User-Agent" => user_agent,
32
+ :accept => :json,
33
+ "Lang-Version" => RUBY_VERSION,
34
+ "OS-Version" => RUBY_PLATFORM
35
+ }.merge(headers)
36
+ opts = {
37
+ :method => method,
38
+ :url => env.api_url(url),
39
+ :user => api_key,
40
+ :headers => headers,
41
+ :payload => payload,
42
+ :open_timeout => 50,
43
+ :timeout => 100
44
+ }.merge(ssl_opts)
45
+
46
+ begin
47
+ response = RestClient::Request.execute(opts)
48
+ rescue RestClient::ExceptionWithResponse => e
49
+ if rcode = e.http_code and rbody = e.http_body
50
+ raise handle_for_error(e, rcode, rbody)
51
+ else
52
+ raise IOError.new("IO Exception when trying to connect to chargebee with url #{opts[:url]} . Reason #{e}",e)
53
+ end
54
+ rescue Exception => e
55
+ raise IOError.new("IO Exception when trying to connect to chargebee with url #{opts[:url]} . Reason #{e}",e)
56
+ end
57
+ rbody = response.body
58
+ rcode = response.code
59
+ begin
60
+ resp = JSON.parse(rbody)
61
+ rescue Exception => e
62
+ raise Error.new("Response not in JSON format. Probably not a ChargeBee response \n #{rbody.inspect}",e)
63
+ end
64
+ resp = Util.symbolize_keys(resp)
65
+ resp
66
+ end
67
+
68
+ def self.handle_for_error(e, rcode=nil, rbody=nil)
69
+ if(rcode == 204)
70
+ raise Error.new("No response returned by the chargebee api. The http status code is #{rcode}")
71
+ end
72
+ begin
73
+ error_obj = JSON.parse(rbody)
74
+ error_obj = Util.symbolize_keys(error_obj)
75
+ rescue Exception => e
76
+ raise Error.new("Error response not in JSON format. The http status code is #{rcode} \n #{rbody.inspect}",e)
77
+ end
78
+ type = error_obj[:type]
79
+ if("payment" == type)
80
+ raise PaymentError.new(rcode, error_obj)
81
+ elsif("operation_failed" == type)
82
+ raise OperationFailedError.new(rcode, error_obj)
83
+ elsif("invalid_request" == type)
84
+ raise InvalidRequestError.new(rcode, error_obj)
85
+ else
86
+ raise APIError.new(rcode, error_obj)
87
+ end
88
+
89
+ end
90
+
91
+ end
92
+ end