chargebee 1.7.4 → 2.6.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1107 -94
  3. data/LICENSE +1 -1
  4. data/README.rdoc +22 -15
  5. data/chargebee.gemspec +27 -7
  6. data/lib/.DS_Store +0 -0
  7. data/lib/chargebee.rb +28 -2
  8. data/lib/chargebee/environment.rb +11 -6
  9. data/lib/chargebee/errors.rb +1 -1
  10. data/lib/chargebee/models/addon.rb +18 -3
  11. data/lib/chargebee/models/address.rb +1 -1
  12. data/lib/chargebee/models/card.rb +8 -7
  13. data/lib/chargebee/models/comment.rb +1 -1
  14. data/lib/chargebee/models/contact.rb +11 -0
  15. data/lib/chargebee/models/coupon.rb +20 -4
  16. data/lib/chargebee/models/coupon_code.rb +9 -1
  17. data/lib/chargebee/models/coupon_set.rb +38 -0
  18. data/lib/chargebee/models/credit_note.rb +78 -0
  19. data/lib/chargebee/models/credit_note_estimate.rb +36 -0
  20. data/lib/chargebee/models/customer.rb +73 -12
  21. data/lib/chargebee/models/estimate.rb +26 -15
  22. data/lib/chargebee/models/event.rb +1 -1
  23. data/lib/chargebee/models/export.rb +87 -0
  24. data/lib/chargebee/models/gift.rb +43 -0
  25. data/lib/chargebee/models/hierarchy.rb +10 -0
  26. data/lib/chargebee/models/hosted_page.rb +33 -5
  27. data/lib/chargebee/models/invoice.rb +82 -19
  28. data/lib/chargebee/models/invoice_estimate.rb +36 -0
  29. data/lib/chargebee/models/model.rb +34 -3
  30. data/lib/chargebee/models/order.rb +49 -3
  31. data/lib/chargebee/models/payment_source.rb +84 -0
  32. data/lib/chargebee/models/plan.rb +33 -5
  33. data/lib/chargebee/models/promotional_credit.rb +31 -0
  34. data/lib/chargebee/models/quote.rb +77 -0
  35. data/lib/chargebee/models/resource_migration.rb +14 -0
  36. data/lib/chargebee/models/site_migration_detail.rb +15 -0
  37. data/lib/chargebee/models/subscription.rb +60 -8
  38. data/lib/chargebee/models/subscription_estimate.rb +14 -0
  39. data/lib/chargebee/models/third_party_payment_method.rb +10 -0
  40. data/lib/chargebee/models/time_machine.rb +47 -0
  41. data/lib/chargebee/models/token.rb +11 -0
  42. data/lib/chargebee/models/transaction.rb +29 -10
  43. data/lib/chargebee/models/unbilled_charge.rb +32 -0
  44. data/lib/chargebee/models/virtual_bank_account.rb +32 -0
  45. data/lib/chargebee/request.rb +11 -0
  46. data/lib/chargebee/rest.rb +6 -4
  47. data/lib/chargebee/result.rb +183 -27
  48. data/spec/errors_spec.rb +23 -0
  49. data/spec/sample_response.rb +1 -1
  50. metadata +39 -11
  51. data/lib/chargebee/models/payment_intent.rb +0 -27
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2011-2016 ChargeBee, Inc.
3
+ Copyright (c) 2011-2019 ChargeBee, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person
6
6
  obtaining a copy of this software and associated documentation
@@ -1,32 +1,39 @@
1
- = Chargebee Ruby Client Library - API V1
1
+ = Chargebee Ruby Client Library - API V2
2
2
 
3
- The ruby library for integrating with Chargebee Recurring Billing and Subscription Management solution.
3
+ {<img src="https://img.shields.io/gem/v/chargebee.svg?maxAge=2592000"/>}[https://rubygems.org/gems/chargebee]
4
+ {<img src="https://img.shields.io/gem/dtv/chargebee.svg?maxAge=2592000"/>}[https://rubygems.org/gems/chargebee]
4
5
 
5
- Chargebee now supports two API versions - {V1}[https://apidocs.chargebee.com/docs/api/v1] and {V2}[https://apidocs.chargebee.com/docs/api]. This library is for our <b>older API version V1</b>. The library for V2 can be found in the {master branch}[https://github.com/chargebee/chargebee-ruby].
6
+ This is the Ruby Library for integrating with Chargebee. Sign up for a Chargebee account {here}[https://www.chargebee.com].
6
7
 
7
- You'd want to upgrade to V2 to benefit from the new functionality. Click here for the {API V2 Upgradation Guide}[https://apidocs.chargebee.com/docs/api/v1#api-v2-upgradation-guide].
8
+ Chargebee now supports two API versions - {V1}[https://apidocs.chargebee.com/docs/api/v1] and {V2}[https://apidocs.chargebee.com/docs/api], of which V2 is the latest release and all future developments will happen in V2. This library is for <b>API version V2</b>. If you’re looking for V1, head to {chargebee-v1 branch}[https://github.com/chargebee/chargebee-ruby/tree/chargebee-v1].
8
9
 
9
10
  == Installation
10
11
 
11
12
  Install the latest version of the gem with the following command...
12
-
13
- $ sudo gem install chargebee -v '~>1'
13
+
14
+ $ sudo gem install chargebee -v '~>2'
15
+
16
+
17
+ == Requirements
18
+
19
+ * Ruby 1.9.3 or above.
20
+ * rest-client
14
21
 
15
22
  == Documentation
16
23
 
17
- For API reference see {here}[https://apidocs.chargebee.com/docs/api/v1/?lang=ruby]
24
+ For API reference see {here}[https://apidocs.chargebee.com/docs/api?lang=ruby]
18
25
 
19
26
  == Usage
20
27
 
21
28
  To create a new subscription:
22
-
23
- ChargeBee.configure({:api_key => "your_api_key"}, {:site => "your_site"})
24
- result = ChargeBee::Subscription.create({
25
- :id => "sub_KyVqDh__dev__NTn4VZZ1",
26
- :plan_id => "basic",
27
- })
28
- subscription = result.subscription
29
- puts "created subscription is #{subscription}"
29
+
30
+ ChargeBee.configure({:api_key => "your_api_key" , :site => "your_site"})
31
+ result = ChargeBee::Subscription.create({
32
+ :id => "sub_KyVqDh__dev__NTn4VZZ1",
33
+ :plan_id => "basic",
34
+ })
35
+ subscription = result.subscription
36
+ puts "created subscription is #{subscription}"
30
37
 
31
38
  == License
32
39
 
@@ -2,10 +2,10 @@ Gem::Specification.new do |s|
2
2
  s.specification_version = 2 if s.respond_to? :specification_version=
3
3
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
4
4
  s.rubygems_version = '1.3.5'
5
-
5
+ s.required_ruby_version = '>= 1.9.3'
6
6
  s.name = 'chargebee'
7
- s.version = '1.7.4'
8
- s.date = '2019-08-14'
7
+ s.version = '2.6.7'
8
+ s.date = '2019-07-22'
9
9
 
10
10
  s.summary = "Ruby client for Chargebee API."
11
11
  s.description = "Subscription Billing - Simple. Secure. Affordable. More details at www.chargebee.com."
@@ -13,15 +13,15 @@ Gem::Specification.new do |s|
13
13
  s.authors = ['Rajaraman S', 'Thiyagarajan T']
14
14
  s.email = ['rr@chargebee.com', 'thiyagu@chargebee.com']
15
15
  s.homepage = 'https://apidocs.chargebee.com/api/docs?lang=ruby'
16
-
16
+ s.license = 'MIT'
17
17
 
18
18
  s.require_paths = %w[lib]
19
19
 
20
20
  s.rdoc_options = ["--charset=UTF-8"]
21
21
  s.extra_rdoc_files = %w[README.rdoc LICENSE]
22
22
 
23
- s.add_dependency('json_pure', '~> 1.5')
24
- s.add_dependency('rest-client', '~> 1.4')
23
+ s.add_dependency('json_pure', '~> 2.1')
24
+ s.add_dependency('rest-client', '>= 1.8', '< 3.0')
25
25
 
26
26
  s.add_development_dependency('rspec', '~> 3.0.0')
27
27
  s.add_development_dependency('mocha')
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
33
33
  README.rdoc
34
34
  Rakefile
35
35
  chargebee.gemspec
36
+ lib/.DS_Store
36
37
  lib/chargebee.rb
37
38
  lib/chargebee/environment.rb
38
39
  lib/chargebee/errors.rb
@@ -41,21 +42,39 @@ Gem::Specification.new do |s|
41
42
  lib/chargebee/models/address.rb
42
43
  lib/chargebee/models/card.rb
43
44
  lib/chargebee/models/comment.rb
45
+ lib/chargebee/models/contact.rb
44
46
  lib/chargebee/models/coupon.rb
45
47
  lib/chargebee/models/coupon_code.rb
48
+ lib/chargebee/models/coupon_set.rb
49
+ lib/chargebee/models/credit_note.rb
50
+ lib/chargebee/models/credit_note_estimate.rb
46
51
  lib/chargebee/models/customer.rb
47
52
  lib/chargebee/models/download.rb
48
53
  lib/chargebee/models/estimate.rb
49
54
  lib/chargebee/models/event.rb
55
+ lib/chargebee/models/export.rb
56
+ lib/chargebee/models/gift.rb
57
+ lib/chargebee/models/hierarchy.rb
50
58
  lib/chargebee/models/hosted_page.rb
51
59
  lib/chargebee/models/invoice.rb
60
+ lib/chargebee/models/invoice_estimate.rb
52
61
  lib/chargebee/models/model.rb
53
62
  lib/chargebee/models/order.rb
54
- lib/chargebee/models/payment_intent.rb
63
+ lib/chargebee/models/payment_source.rb
55
64
  lib/chargebee/models/plan.rb
56
65
  lib/chargebee/models/portal_session.rb
66
+ lib/chargebee/models/promotional_credit.rb
67
+ lib/chargebee/models/quote.rb
68
+ lib/chargebee/models/resource_migration.rb
69
+ lib/chargebee/models/site_migration_detail.rb
57
70
  lib/chargebee/models/subscription.rb
71
+ lib/chargebee/models/subscription_estimate.rb
72
+ lib/chargebee/models/third_party_payment_method.rb
73
+ lib/chargebee/models/time_machine.rb
74
+ lib/chargebee/models/token.rb
58
75
  lib/chargebee/models/transaction.rb
76
+ lib/chargebee/models/unbilled_charge.rb
77
+ lib/chargebee/models/virtual_bank_account.rb
59
78
  lib/chargebee/request.rb
60
79
  lib/chargebee/rest.rb
61
80
  lib/chargebee/result.rb
@@ -63,6 +82,7 @@ Gem::Specification.new do |s|
63
82
  lib/ssl/ca-certs.crt
64
83
  spec/chargebee/list_result_spec.rb
65
84
  spec/chargebee_spec.rb
85
+ spec/errors_spec.rb
66
86
  spec/sample_response.rb
67
87
  spec/spec_helper.rb
68
88
  ]
Binary file
@@ -11,29 +11,46 @@ require File.dirname(__FILE__) + '/chargebee/models/model'
11
11
  require File.dirname(__FILE__) + '/chargebee/models/subscription'
12
12
  require File.dirname(__FILE__) + '/chargebee/models/customer'
13
13
  require File.dirname(__FILE__) + '/chargebee/models/card'
14
+ require File.dirname(__FILE__) + '/chargebee/models/third_party_payment_method'
14
15
  require File.dirname(__FILE__) + '/chargebee/models/address'
15
16
  require File.dirname(__FILE__) + '/chargebee/models/transaction'
16
17
  require File.dirname(__FILE__) + '/chargebee/models/invoice'
17
18
  require File.dirname(__FILE__) + '/chargebee/models/order'
19
+ require File.dirname(__FILE__) + '/chargebee/models/credit_note'
18
20
  require File.dirname(__FILE__) + '/chargebee/models/estimate'
21
+ require File.dirname(__FILE__) + '/chargebee/models/subscription_estimate'
22
+ require File.dirname(__FILE__) + '/chargebee/models/invoice_estimate'
23
+ require File.dirname(__FILE__) + '/chargebee/models/credit_note_estimate'
19
24
  require File.dirname(__FILE__) + '/chargebee/models/hosted_page'
20
25
  require File.dirname(__FILE__) + '/chargebee/models/event'
21
26
  require File.dirname(__FILE__) + '/chargebee/models/plan'
22
27
  require File.dirname(__FILE__) + '/chargebee/models/addon'
23
28
  require File.dirname(__FILE__) + '/chargebee/models/coupon'
24
29
  require File.dirname(__FILE__) + '/chargebee/models/coupon_code'
30
+ require File.dirname(__FILE__) + '/chargebee/models/coupon_set'
25
31
  require File.dirname(__FILE__) + '/chargebee/models/comment'
26
32
  require File.dirname(__FILE__) + '/chargebee/models/portal_session'
27
33
  require File.dirname(__FILE__) + '/chargebee/models/download'
28
- require File.dirname(__FILE__) + '/chargebee/models/payment_intent'
34
+ require File.dirname(__FILE__) + '/chargebee/models/site_migration_detail'
35
+ require File.dirname(__FILE__) + '/chargebee/models/resource_migration'
36
+ require File.dirname(__FILE__) + '/chargebee/models/payment_source'
37
+ require File.dirname(__FILE__) + '/chargebee/models/unbilled_charge'
38
+ require File.dirname(__FILE__) + '/chargebee/models/time_machine'
39
+ require File.dirname(__FILE__) + '/chargebee/models/promotional_credit.rb'
40
+ require File.dirname(__FILE__) + '/chargebee/models/virtual_bank_account.rb'
41
+ require File.dirname(__FILE__) + '/chargebee/models/export'
42
+ require File.dirname(__FILE__) + '/chargebee/models/gift'
43
+ require File.dirname(__FILE__) + '/chargebee/models/quote'
44
+ require File.dirname(__FILE__) + '/chargebee/models/contact.rb'
29
45
 
30
46
  module ChargeBee
31
47
 
32
- VERSION = '1.7.4'
48
+ VERSION = '2.6.7'
33
49
 
34
50
  @@default_env = nil
35
51
  @@verify_ca_certs = true
36
52
  @@ca_cert_path = File.join(File.dirname(__FILE__), '/ssl/ca-certs.crt')
53
+ @@user_agent = "Chargebee-Ruby-Client v#{self::VERSION}"
37
54
 
38
55
  def self.configure(options)
39
56
  @@default_env = Environment.new(options)
@@ -55,5 +72,14 @@ module ChargeBee
55
72
  @@ca_cert_path
56
73
  end
57
74
 
75
+
76
+ def self.source(source)
77
+ @@user_agent = @@user_agent + ' ' + source unless source.nil?
78
+ end
79
+
80
+ def self.user_agent
81
+ @@user_agent
82
+ end
83
+
58
84
  end
59
85
 
@@ -1,11 +1,17 @@
1
1
  module ChargeBee
2
2
  class Environment
3
- API_VERSION = "v1"
4
- attr_accessor :api_key, :site
5
- attr_reader :api_endpoint
6
-
3
+ API_VERSION = "v2"
4
+ # in seconds
5
+ TIME_MACHINE_TIMEOUT = 3
6
+ EXPORT_TIMEOUT = 10
7
+
8
+ attr_accessor :api_key, :site, :time_machine_sleeptime, :export_sleeptime
9
+ attr_reader :api_endpoint
10
+
7
11
  def initialize(options)
8
- [:api_key, :site].each do |attr|
12
+ options[:time_machine_sleeptime] ||= TIME_MACHINE_TIMEOUT
13
+ options[:export_sleeptime] ||= EXPORT_TIMEOUT
14
+ [:api_key, :site, :time_machine_sleeptime, :export_sleeptime].each do |attr|
9
15
  instance_variable_set "@#{attr}", options[attr]
10
16
  end
11
17
  if($CHARGEBEE_DOMAIN == nil)
@@ -18,6 +24,5 @@ module ChargeBee
18
24
  def api_url(url)
19
25
  url = @api_endpoint + url
20
26
  end
21
-
22
27
  end
23
28
  end
@@ -13,7 +13,7 @@ module ChargeBee
13
13
 
14
14
  class APIError < Error
15
15
 
16
- attr_reader :http_status_code, :message, :type, :api_error_code, :param, :json_obj,
16
+ attr_reader :http_status_code, :type, :api_error_code, :param, :json_obj,
17
17
  #Deprecated attributes
18
18
  :http_code, :http_body, :error_code
19
19
 
@@ -1,8 +1,15 @@
1
1
  module ChargeBee
2
2
  class Addon < Model
3
3
 
4
- attr_accessor :id, :name, :invoice_name, :description, :type, :charge_type, :price, :period,
5
- :period_unit, :unit, :status, :archived_at, :enabled_in_portal, :invoice_notes, :taxable, :meta_data
4
+ class Tier < Model
5
+ attr_accessor :starting_unit, :ending_unit, :price
6
+ end
7
+
8
+ attr_accessor :id, :name, :invoice_name, :description, :pricing_model, :type, :charge_type,
9
+ :price, :currency_code, :period, :period_unit, :unit, :status, :archived_at, :enabled_in_portal,
10
+ :tax_code, :avalara_sale_type, :avalara_transaction_type, :avalara_service_type, :sku, :accounting_code,
11
+ :accounting_category1, :accounting_category2, :is_shippable, :shipping_frequency_period, :shipping_frequency_period_unit,
12
+ :resource_version, :updated_at, :invoice_notes, :taxable, :tax_profile_id, :meta_data, :tiers
6
13
 
7
14
  # OPERATIONS
8
15
  #-----------
@@ -16,7 +23,7 @@ module ChargeBee
16
23
  end
17
24
 
18
25
  def self.list(params={}, env=nil, headers={})
19
- Request.send('get', uri_path("addons"), params, env, headers)
26
+ Request.send_list_request('get', uri_path("addons"), params, env, headers)
20
27
  end
21
28
 
22
29
  def self.retrieve(id, env=nil, headers={})
@@ -27,5 +34,13 @@ module ChargeBee
27
34
  Request.send('post', uri_path("addons",id.to_s,"delete"), {}, env, headers)
28
35
  end
29
36
 
37
+ def self.copy(params, env=nil, headers={})
38
+ Request.send('post', uri_path("addons","copy"), params, env, headers)
39
+ end
40
+
41
+ def self.unarchive(id, env=nil, headers={})
42
+ Request.send('post', uri_path("addons",id.to_s,"unarchive"), {}, env, headers)
43
+ end
44
+
30
45
  end # ~Addon
31
46
  end # ~ChargeBee
@@ -2,7 +2,7 @@ module ChargeBee
2
2
  class Address < Model
3
3
 
4
4
  attr_accessor :label, :first_name, :last_name, :email, :company, :phone, :addr, :extended_addr,
5
- :extended_addr2, :city, :state_code, :state, :country, :zip, :subscription_id
5
+ :extended_addr2, :city, :state_code, :state, :country, :zip, :validation_status, :subscription_id
6
6
 
7
7
  # OPERATIONS
8
8
  #-----------
@@ -1,9 +1,10 @@
1
1
  module ChargeBee
2
2
  class Card < Model
3
3
 
4
- attr_accessor :status, :gateway, :reference_id, :first_name, :last_name, :iin, :last4, :card_type,
5
- :expiry_month, :expiry_year, :billing_addr1, :billing_addr2, :billing_city, :billing_state_code,
6
- :billing_state, :billing_country, :billing_zip, :ip_address, :customer_id, :masked_number
4
+ attr_accessor :payment_source_id, :status, :gateway, :gateway_account_id, :ref_tx_id, :first_name,
5
+ :last_name, :iin, :last4, :card_type, :funding_type, :expiry_month, :expiry_year, :issuing_country,
6
+ :billing_addr1, :billing_addr2, :billing_city, :billing_state_code, :billing_state, :billing_country,
7
+ :billing_zip, :created_at, :resource_version, :updated_at, :ip_address, :customer_id, :masked_number
7
8
 
8
9
  # OPERATIONS
9
10
  #-----------
@@ -16,14 +17,14 @@ module ChargeBee
16
17
  Request.send('post', uri_path("customers",id.to_s,"credit_card"), params, env, headers)
17
18
  end
18
19
 
19
- def self.update_card_for_customer_using_payment_intent(id, params={}, env=nil, headers={})
20
- Request.send('post', uri_path("customers",id.to_s,"credit_card_using_payment_intent"), params, env, headers)
21
- end
22
-
23
20
  def self.switch_gateway_for_customer(id, params, env=nil, headers={})
24
21
  Request.send('post', uri_path("customers",id.to_s,"switch_gateway"), params, env, headers)
25
22
  end
26
23
 
24
+ def self.copy_card_for_customer(id, params, env=nil, headers={})
25
+ Request.send('post', uri_path("customers",id.to_s,"copy_card"), params, env, headers)
26
+ end
27
+
27
28
  def self.delete_card_for_customer(id, env=nil, headers={})
28
29
  Request.send('post', uri_path("customers",id.to_s,"delete_card"), {}, env, headers)
29
30
  end
@@ -15,7 +15,7 @@ module ChargeBee
15
15
  end
16
16
 
17
17
  def self.list(params={}, env=nil, headers={})
18
- Request.send('get', uri_path("comments"), params, env, headers)
18
+ Request.send_list_request('get', uri_path("comments"), params, env, headers)
19
19
  end
20
20
 
21
21
  def self.delete(id, env=nil, headers={})
@@ -0,0 +1,11 @@
1
+ module ChargeBee
2
+ class Contact < Model
3
+
4
+ attr_accessor :id, :first_name, :last_name, :email, :phone, :label, :enabled, :send_account_email,
5
+ :send_billing_email
6
+
7
+ # OPERATIONS
8
+ #-----------
9
+
10
+ end # ~Contact
11
+ end # ~ChargeBee
@@ -2,9 +2,9 @@ module ChargeBee
2
2
  class Coupon < Model
3
3
 
4
4
  attr_accessor :id, :name, :invoice_name, :discount_type, :discount_percentage, :discount_amount,
5
- :discount_quantity, :duration_type, :duration_month, :valid_till, :max_redemptions, :status,
6
- :apply_discount_on, :apply_on, :plan_constraint, :addon_constraint, :created_at, :archived_at,
7
- :plan_ids, :addon_ids, :redemptions, :invoice_notes, :meta_data
5
+ :discount_quantity, :currency_code, :duration_type, :duration_month, :valid_till, :max_redemptions,
6
+ :status, :apply_discount_on, :apply_on, :plan_constraint, :addon_constraint, :created_at, :archived_at,
7
+ :resource_version, :updated_at, :plan_ids, :addon_ids, :redemptions, :invoice_notes, :meta_data
8
8
 
9
9
  # OPERATIONS
10
10
  #-----------
@@ -14,12 +14,28 @@ module ChargeBee
14
14
  end
15
15
 
16
16
  def self.list(params={}, env=nil, headers={})
17
- Request.send('get', uri_path("coupons"), params, env, headers)
17
+ Request.send_list_request('get', uri_path("coupons"), params, env, headers)
18
18
  end
19
19
 
20
20
  def self.retrieve(id, env=nil, headers={})
21
21
  Request.send('get', uri_path("coupons",id.to_s), {}, env, headers)
22
22
  end
23
23
 
24
+ def self.update(id, params={}, env=nil, headers={})
25
+ Request.send('post', uri_path("coupons",id.to_s), params, env, headers)
26
+ end
27
+
28
+ def self.delete(id, env=nil, headers={})
29
+ Request.send('post', uri_path("coupons",id.to_s,"delete"), {}, env, headers)
30
+ end
31
+
32
+ def self.copy(params, env=nil, headers={})
33
+ Request.send('post', uri_path("coupons","copy"), params, env, headers)
34
+ end
35
+
36
+ def self.unarchive(id, env=nil, headers={})
37
+ Request.send('post', uri_path("coupons",id.to_s,"unarchive"), {}, env, headers)
38
+ end
39
+
24
40
  end # ~Coupon
25
41
  end # ~ChargeBee
@@ -1,7 +1,7 @@
1
1
  module ChargeBee
2
2
  class CouponCode < Model
3
3
 
4
- attr_accessor :code, :coupon_id, :coupon_set_name
4
+ attr_accessor :code, :status, :coupon_id, :coupon_set_id, :coupon_set_name
5
5
 
6
6
  # OPERATIONS
7
7
  #-----------
@@ -14,5 +14,13 @@ module ChargeBee
14
14
  Request.send('get', uri_path("coupon_codes",id.to_s), {}, env, headers)
15
15
  end
16
16
 
17
+ def self.list(params={}, env=nil, headers={})
18
+ Request.send_list_request('get', uri_path("coupon_codes"), params, env, headers)
19
+ end
20
+
21
+ def self.archive(id, env=nil, headers={})
22
+ Request.send('post', uri_path("coupon_codes",id.to_s,"archive"), {}, env, headers)
23
+ end
24
+
17
25
  end # ~CouponCode
18
26
  end # ~ChargeBee
@@ -0,0 +1,38 @@
1
+ module ChargeBee
2
+ class CouponSet < Model
3
+
4
+ attr_accessor :id, :coupon_id, :name, :total_count, :redeemed_count, :archived_count, :meta_data
5
+
6
+ # OPERATIONS
7
+ #-----------
8
+
9
+ def self.create(params, env=nil, headers={})
10
+ Request.send('post', uri_path("coupon_sets"), params, env, headers)
11
+ end
12
+
13
+ def self.add_coupon_codes(id, params={}, env=nil, headers={})
14
+ Request.send('post', uri_path("coupon_sets",id.to_s,"add_coupon_codes"), params, env, headers)
15
+ end
16
+
17
+ def self.list(params={}, env=nil, headers={})
18
+ Request.send_list_request('get', uri_path("coupon_sets"), params, env, headers)
19
+ end
20
+
21
+ def self.retrieve(id, env=nil, headers={})
22
+ Request.send('get', uri_path("coupon_sets",id.to_s), {}, env, headers)
23
+ end
24
+
25
+ def self.update(id, params={}, env=nil, headers={})
26
+ Request.send('post', uri_path("coupon_sets",id.to_s,"update"), params, env, headers)
27
+ end
28
+
29
+ def self.delete(id, env=nil, headers={})
30
+ Request.send('post', uri_path("coupon_sets",id.to_s,"delete"), {}, env, headers)
31
+ end
32
+
33
+ def self.delete_unused_coupon_codes(id, env=nil, headers={})
34
+ Request.send('post', uri_path("coupon_sets",id.to_s,"delete_unused_coupon_codes"), {}, env, headers)
35
+ end
36
+
37
+ end # ~CouponSet
38
+ end # ~ChargeBee