chargebee 2.49.0 → 2.50.1

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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +0 -1
  5. data/chargebee.gemspec +4 -2
  6. data/lib/chargebee/environment.rb +8 -1
  7. data/lib/chargebee/list_result.rb +9 -5
  8. data/lib/chargebee/models/addon.rb +23 -7
  9. data/lib/chargebee/models/address.rb +6 -2
  10. data/lib/chargebee/models/attached_item.rb +16 -6
  11. data/lib/chargebee/models/business_entity.rb +6 -2
  12. data/lib/chargebee/models/card.rb +15 -5
  13. data/lib/chargebee/models/comment.rb +12 -4
  14. data/lib/chargebee/models/configuration.rb +3 -1
  15. data/lib/chargebee/models/coupon.rb +40 -10
  16. data/lib/chargebee/models/coupon_code.rb +12 -4
  17. data/lib/chargebee/models/coupon_set.rb +23 -7
  18. data/lib/chargebee/models/credit_note.rb +44 -16
  19. data/lib/chargebee/models/currency.rb +18 -6
  20. data/lib/chargebee/models/customer.rb +83 -25
  21. data/lib/chargebee/models/customer_entitlement.rb +3 -1
  22. data/lib/chargebee/models/differential_price.rb +19 -6
  23. data/lib/chargebee/models/entitlement.rb +6 -2
  24. data/lib/chargebee/models/entitlement_override.rb +6 -2
  25. data/lib/chargebee/models/estimate.rb +64 -20
  26. data/lib/chargebee/models/event.rb +7 -3
  27. data/lib/chargebee/models/export.rb +54 -18
  28. data/lib/chargebee/models/feature.rb +24 -8
  29. data/lib/chargebee/models/gift.rb +23 -7
  30. data/lib/chargebee/models/hosted_page.rb +68 -23
  31. data/lib/chargebee/models/in_app_subscription.rb +12 -4
  32. data/lib/chargebee/models/invoice.rb +129 -44
  33. data/lib/chargebee/models/invoice_estimate.rb +5 -1
  34. data/lib/chargebee/models/item.rb +18 -6
  35. data/lib/chargebee/models/item_entitlement.rb +12 -4
  36. data/lib/chargebee/models/item_family.rb +17 -6
  37. data/lib/chargebee/models/item_price.rb +24 -8
  38. data/lib/chargebee/models/non_subscription.rb +3 -1
  39. data/lib/chargebee/models/omnichannel_subscription.rb +9 -3
  40. data/lib/chargebee/models/order.rb +36 -12
  41. data/lib/chargebee/models/payment_intent.rb +9 -3
  42. data/lib/chargebee/models/payment_schedule_scheme.rb +9 -3
  43. data/lib/chargebee/models/payment_source.rb +57 -16
  44. data/lib/chargebee/models/payment_voucher.rb +12 -4
  45. data/lib/chargebee/models/plan.rb +23 -7
  46. data/lib/chargebee/models/portal_session.rb +12 -4
  47. data/lib/chargebee/models/price_variant.rb +16 -6
  48. data/lib/chargebee/models/pricing_page_session.rb +6 -2
  49. data/lib/chargebee/models/promotional_credit.rb +15 -5
  50. data/lib/chargebee/models/purchase.rb +8 -2
  51. data/lib/chargebee/models/quote.rb +60 -20
  52. data/lib/chargebee/models/ramp.rb +15 -5
  53. data/lib/chargebee/models/recorded_purchase.rb +6 -2
  54. data/lib/chargebee/models/resource_migration.rb +3 -1
  55. data/lib/chargebee/models/rule.rb +17 -0
  56. data/lib/chargebee/models/site_migration_detail.rb +3 -1
  57. data/lib/chargebee/models/subscription.rb +129 -37
  58. data/lib/chargebee/models/subscription_entitlement.rb +6 -2
  59. data/lib/chargebee/models/time_machine.rb +9 -3
  60. data/lib/chargebee/models/transaction.rb +33 -11
  61. data/lib/chargebee/models/unbilled_charge.rb +18 -6
  62. data/lib/chargebee/models/usage.rb +15 -5
  63. data/lib/chargebee/models/usage_event.rb +24 -0
  64. data/lib/chargebee/models/virtual_bank_account.rb +18 -6
  65. data/lib/chargebee/nativeRequest.rb +7 -5
  66. data/lib/chargebee/request.rb +11 -11
  67. data/lib/chargebee/result.rb +25 -10
  68. data/lib/chargebee/util.rb +8 -5
  69. data/lib/chargebee.rb +3 -1
  70. metadata +4 -2
@@ -1,27 +1,27 @@
1
1
  module ChargeBee
2
- class Request
2
+ class Request
3
3
 
4
- def self.send_list_request(method, url, params={}, env=nil, headers={})
4
+ def self.send_list_request(method, url, params={}, env=nil, headers={}, sub_domain=nil, isJsonRequest=nil, jsonKeys={})
5
5
  serialized = {}
6
6
  params.each do |k, v|
7
7
  if(v.kind_of? Array)
8
8
  v = v.to_json
9
9
  end
10
10
  serialized["#{k}"] = v
11
- end
12
- self.send(method, url, serialized, env, headers)
11
+ end
12
+ self.send(method, url, serialized, env, headers, sub_domain, isJsonRequest=nil, jsonKeys={})
13
13
  end
14
14
 
15
- def self.send(method, url, params={}, env=nil, headers={})
15
+ def self.send(method, url, params={}, env=nil, headers={}, sub_domain=nil, isJsonRequest=nil, jsonKeys={})
16
16
  env ||= ChargeBee.default_env
17
- ser_params = Util.serialize(params)
18
- resp, rheaders = NativeRequest.request(method, url, env, ser_params||={}, headers)
17
+ ser_params = isJsonRequest ? params.to_json : Util.serialize(params, nil, nil, jsonKeys)
18
+ resp, rheaders, rcode = NativeRequest.request(method, url, env, ser_params||={}, headers, sub_domain, isJsonRequest)
19
19
  if resp.has_key?(:list)
20
- ListResult.new(resp[:list], resp[:next_offset], rheaders)
21
- else
22
- Result.new(resp, rheaders)
20
+ ListResult.new(resp[:list], resp[:next_offset], rheaders, rcode)
21
+ else
22
+ Result.new(resp, rheaders, rcode)
23
23
  end
24
24
  end
25
-
25
+
26
26
  end
27
27
  end
@@ -3,15 +3,24 @@ module ChargeBee
3
3
 
4
4
  IDEMPOTENCY_REPLAYED_HEADER = :chargebee_idempotency_replayed
5
5
 
6
- def initialize(response, rheaders = nil)
6
+ def initialize(response, rheaders = nil, http_status_code=nil)
7
7
  @response = response
8
8
  @rheaders = rheaders
9
+ @http_status_code = http_status_code
9
10
  end
10
11
 
11
12
  def get_response_headers()
12
13
  @rheaders
13
14
  end
14
15
 
16
+ def get_raw_response()
17
+ @response
18
+ end
19
+
20
+ def get_http_status_code()
21
+ @http_status_code
22
+ end
23
+
15
24
  def is_idempotency_replayed()
16
25
  replayed_header = get_response_headers[IDEMPOTENCY_REPLAYED_HEADER]
17
26
  if replayed_header != nil
@@ -97,7 +106,7 @@ module ChargeBee
97
106
 
98
107
  def invoice()
99
108
  invoice = get(:invoice, Invoice,
100
- {:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :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, :statement_descriptor => Invoice::StatementDescriptor, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice, :site_details_at_creation => Invoice::SiteDetailsAtCreation, :tax_origin => Invoice::TaxOrigin});
109
+ {:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_credits => Invoice::LineItemCredit, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :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, :statement_descriptor => Invoice::StatementDescriptor, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice, :site_details_at_creation => Invoice::SiteDetailsAtCreation, :tax_origin => Invoice::TaxOrigin});
101
110
  return invoice;
102
111
  end
103
112
 
@@ -158,13 +167,13 @@ module ChargeBee
158
167
  estimate.init_dependant(@response[:estimate], :subscription_estimate,
159
168
  {:shipping_address => SubscriptionEstimate::ShippingAddress, :contract_term => SubscriptionEstimate::ContractTerm});
160
169
  estimate.init_dependant(@response[:estimate], :invoice_estimate,
161
- {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
170
+ {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_credits => InvoiceEstimate::LineItemCredit, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
162
171
  estimate.init_dependant(@response[:estimate], :next_invoice_estimate,
163
- {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
172
+ {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_credits => InvoiceEstimate::LineItemCredit, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
164
173
  estimate.init_dependant_list(@response[:estimate], :subscription_estimates,
165
174
  {:shipping_address => SubscriptionEstimate::ShippingAddress, :contract_term => SubscriptionEstimate::ContractTerm});
166
175
  estimate.init_dependant_list(@response[:estimate], :invoice_estimates,
167
- {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
176
+ {:line_items => InvoiceEstimate::LineItem, :discounts => InvoiceEstimate::Discount, :taxes => InvoiceEstimate::Tax, :line_item_taxes => InvoiceEstimate::LineItemTax, :line_item_tiers => InvoiceEstimate::LineItemTier, :line_item_credits => InvoiceEstimate::LineItemCredit, :line_item_discounts => InvoiceEstimate::LineItemDiscount});
168
177
  estimate.init_dependant_list(@response[:estimate], :payment_schedule_estimates,
169
178
  {:schedule_entries => PaymentScheduleEstimate::ScheduleEntry});
170
179
  estimate.init_dependant_list(@response[:estimate], :credit_note_estimates,
@@ -461,6 +470,16 @@ module ChargeBee
461
470
  return recorded_purchase;
462
471
  end
463
472
 
473
+ def rule()
474
+ rule = get(:rule, Rule);
475
+ return rule;
476
+ end
477
+
478
+ def usage_event()
479
+ usage_event = get(:usage_event, UsageEvent);
480
+ return usage_event;
481
+ end
482
+
464
483
  def advance_invoice_schedules()
465
484
  advance_invoice_schedules = get_list(:advance_invoice_schedules, AdvanceInvoiceSchedule,
466
485
  {:fixed_interval_schedule => AdvanceInvoiceSchedule::FixedIntervalSchedule, :specific_dates_schedule => AdvanceInvoiceSchedule::SpecificDatesSchedule});
@@ -475,7 +494,7 @@ module ChargeBee
475
494
 
476
495
  def invoices()
477
496
  invoices = get_list(:invoices, Invoice,
478
- {:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :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, :statement_descriptor => Invoice::StatementDescriptor, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice, :site_details_at_creation => Invoice::SiteDetailsAtCreation, :tax_origin => Invoice::TaxOrigin});
497
+ {:line_items => Invoice::LineItem, :discounts => Invoice::Discount, :line_item_discounts => Invoice::LineItemDiscount, :taxes => Invoice::Tax, :line_item_taxes => Invoice::LineItemTax, :line_item_credits => Invoice::LineItemCredit, :line_item_tiers => Invoice::LineItemTier, :linked_payments => Invoice::LinkedPayment, :dunning_attempts => Invoice::DunningAttempt, :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, :statement_descriptor => Invoice::StatementDescriptor, :billing_address => Invoice::BillingAddress, :einvoice => Invoice::Einvoice, :site_details_at_creation => Invoice::SiteDetailsAtCreation, :tax_origin => Invoice::TaxOrigin});
479
498
  return invoices;
480
499
  end
481
500
 
@@ -520,10 +539,6 @@ module ChargeBee
520
539
  JSON.pretty_generate(@response)
521
540
  end
522
541
 
523
- def get_raw_response()
524
- @response;
525
- end
526
-
527
542
  private
528
543
  def get_list(type, klass, sub_types = {}, dependant_types = {}, dependant_sub_types = {})
529
544
  if(@response[type] == nil)
@@ -1,15 +1,18 @@
1
1
  module ChargeBee
2
2
  module Util
3
3
 
4
- def self.serialize(value, prefix = nil, idx = nil)
4
+ def self.serialize(value, prefix = nil, idx = nil, json_keys = nil, level = 0)
5
5
  serialized = {}
6
6
  case value
7
7
  when Hash
8
8
  value.each do |k, v|
9
- if k == :metadata or k == :meta_data # metadata is encoded as a JSON string instead of URL-encoded.
10
- serialized.merge!({k.to_s => as_str(v)})
9
+ should_json_encode = json_keys[k] && json_keys[k] == level
10
+ if should_json_encode
11
+ key = "#{prefix || ''}#{prefix ? "[#{k}]" : k}#{idx ? "[#{idx}]" : ''}"
12
+ serialized.merge!({ key.to_s => v.is_a?(String) ? v : v.to_json })
11
13
  elsif(v.kind_of? Hash or v.kind_of? Array)
12
- serialized.merge!(serialize(v, k))
14
+ temp_prefix = prefix!=nil ? "#{prefix}[#{k}]" : k
15
+ serialized.merge!(serialize(v, temp_prefix, nil , json_keys, level+1))
13
16
  else
14
17
  key = "#{(prefix!=nil) ? prefix:''}#{(prefix!=nil) ? '['+k.to_s+']' : k}#{(idx != nil) ? '['+idx.to_s+']':''}"
15
18
  serialized.merge!({key => as_str(v)})
@@ -17,7 +20,7 @@ module ChargeBee
17
20
  end
18
21
  when Array
19
22
  value.each_with_index do |v, i|
20
- serialized.merge!(serialize(v, prefix, i))
23
+ serialized.merge!(serialize(v, prefix, i, json_keys, level))
21
24
  end
22
25
  else
23
26
  if(idx != nil and prefix != nil)
data/lib/chargebee.rb CHANGED
@@ -83,11 +83,13 @@ require File.dirname(__FILE__) + '/chargebee/models/omnichannel_transaction'
83
83
  require File.dirname(__FILE__) + '/chargebee/models/recorded_purchase'
84
84
  require File.dirname(__FILE__) + '/chargebee/models/omnichannel_subscription_item'
85
85
  require File.dirname(__FILE__) + '/chargebee/models/configuration'
86
+ require File.dirname(__FILE__) + '/chargebee/models/usage_event'
87
+ require File.dirname(__FILE__) + '/chargebee/models/rule'
86
88
 
87
89
 
88
90
  module ChargeBee
89
91
 
90
- VERSION = '2.49.0'
92
+ VERSION = '2.50.1'
91
93
 
92
94
  @@default_env = nil
93
95
  @@verify_ca_certs = true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chargebee
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.49.0
4
+ version: 2.50.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rajaraman S
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-01-16 00:00:00.000000000 Z
12
+ date: 2025-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_pure
@@ -166,6 +166,7 @@ files:
166
166
  - lib/chargebee/models/ramp.rb
167
167
  - lib/chargebee/models/recorded_purchase.rb
168
168
  - lib/chargebee/models/resource_migration.rb
169
+ - lib/chargebee/models/rule.rb
169
170
  - lib/chargebee/models/site_migration_detail.rb
170
171
  - lib/chargebee/models/subscription.rb
171
172
  - lib/chargebee/models/subscription_entitlement.rb
@@ -177,6 +178,7 @@ files:
177
178
  - lib/chargebee/models/transaction.rb
178
179
  - lib/chargebee/models/unbilled_charge.rb
179
180
  - lib/chargebee/models/usage.rb
181
+ - lib/chargebee/models/usage_event.rb
180
182
  - lib/chargebee/models/virtual_bank_account.rb
181
183
  - lib/chargebee/nativeRequest.rb
182
184
  - lib/chargebee/request.rb