chargebee 2.3.1 → 2.3.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 40718463b1b3f990d9e92f2c8c2e23d0fb3f8dff
4
- data.tar.gz: 5862b5ce054e1e4fb78ee689bf0d0bfd5b56756c
3
+ metadata.gz: 38fa6e24a19f0fcffb1a6718d2fd0a74ceb484c4
4
+ data.tar.gz: 48ff155207c90a59045befe673fcb526d3f8c064
5
5
  SHA512:
6
- metadata.gz: f3cdd1383b12cc6c4ceedaf65f5b635733b1db36dbd6b564dd32481081a90843f31dc1d4a3d80ebd8c71030691547f853b1c45d1008a46029faba259a1a2a2fb
7
- data.tar.gz: 516e88b13f16b2e936f25f67645834f0e8f34024d06c18663e95f11cfaafce95db433b20d01fd513f92ed009e4f53881651df809ae50211376a1c16131f28861
6
+ metadata.gz: 099cfe74e5bdfbb0060f9bef2c6915c9c62fdd3ed155ba7e6f8cb56a50f832b65f5322afabcf8c377909322097e61716e7383c1083d957b49a75b1fc263125d3
7
+ data.tar.gz: 0ac8f73639afd209f759be5ba50e200fb4589ca01960b753f4f3f126788ecd2194cb70516e9debc470ed3b7f48e5aa260de001a23cb3d7ba9fba01add26fdb90
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### v2.3.2 (2017-07-26)
2
+ * * *
3
+
4
+ ** APIs added**:
5
+
6
+ The new resource 'Time Machine' has been added.
7
+
1
8
  ### v2.3.1 (2017-07-21)
2
9
  * * *
3
10
 
data/chargebee.gemspec CHANGED
@@ -4,8 +4,8 @@ Gem::Specification.new do |s|
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 = '2.3.1'
8
- s.date = '2017-07-21'
7
+ s.version = '2.3.2'
8
+ s.date = '2017-07-26'
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."
@@ -62,6 +62,7 @@ Gem::Specification.new do |s|
62
62
  lib/chargebee/models/subscription.rb
63
63
  lib/chargebee/models/subscription_estimate.rb
64
64
  lib/chargebee/models/third_party_payment_method.rb
65
+ lib/chargebee/models/time_machine.rb
65
66
  lib/chargebee/models/transaction.rb
66
67
  lib/chargebee/models/unbilled_charge.rb
67
68
  lib/chargebee/request.rb
data/lib/chargebee.rb CHANGED
@@ -34,10 +34,11 @@ require File.dirname(__FILE__) + '/chargebee/models/site_migration_detail'
34
34
  require File.dirname(__FILE__) + '/chargebee/models/resource_migration'
35
35
  require File.dirname(__FILE__) + '/chargebee/models/payment_source'
36
36
  require File.dirname(__FILE__) + '/chargebee/models/unbilled_charge'
37
+ require File.dirname(__FILE__) + '/chargebee/models/time_machine'
37
38
 
38
39
  module ChargeBee
39
40
 
40
- VERSION = '2.3.1'
41
+ VERSION = '2.3.2'
41
42
 
42
43
  @@default_env = nil
43
44
  @@verify_ca_certs = true
@@ -1,11 +1,15 @@
1
1
  module ChargeBee
2
2
  class Environment
3
- API_VERSION = "v2"
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
+
7
+ attr_accessor :api_key, :site, :time_machine_sleeptime
8
+ attr_reader :api_endpoint
9
+
7
10
  def initialize(options)
8
- [:api_key, :site].each do |attr|
11
+ options[:time_machine_sleeptime] ||= TIME_MACHINE_TIMEOUT
12
+ [:api_key, :site, :time_machine_sleeptime].each do |attr|
9
13
  instance_variable_set "@#{attr}", options[attr]
10
14
  end
11
15
  if($CHARGEBEE_DOMAIN == nil)
@@ -18,6 +22,5 @@ module ChargeBee
18
22
  def api_url(url)
19
23
  url = @api_endpoint + url
20
24
  end
21
-
22
25
  end
23
26
  end
@@ -0,0 +1,47 @@
1
+ module ChargeBee
2
+ class TimeMachine < Model
3
+
4
+ attr_accessor :name, :time_travel_status, :genesis_time, :destination_time, :failure_code, :failure_reason,
5
+ :error_json
6
+ def wait_for_time_travel_completion(env = nil)
7
+ env = env || ChargeBee.default_env
8
+ sleeptime = env.time_machine_sleeptime
9
+
10
+ tm = (1..30).inject(self) do |time_machine|
11
+ break time_machine if time_machine.time_travel_status != "in_progress"
12
+ sleep(sleeptime)
13
+ self.class.retrieve(self.name, env).time_machine
14
+ end
15
+
16
+ # sync last fetched one with the current instance
17
+ new_values = tm.instance_variable_get("@values")
18
+ self.instance_variable_set("@values", new_values)
19
+ self.load(new_values)
20
+
21
+ case tm.time_travel_status
22
+ when "in_progress"
23
+ raise Error.new('The time travel is taking too much time')
24
+ when "failed"
25
+ json_obj = Util.symbolize_keys(JSON.parse(self.error_json))
26
+ raise OperationFailedError.new(json_obj[:http_code], json_obj)
27
+ when "not_enabled", "_unknown"
28
+ raise Error.new("Time travel status is in wrong state #{self.time_travel_status}")
29
+ end
30
+ end
31
+ # OPERATIONS
32
+ #-----------
33
+
34
+ def self.retrieve(id, env=nil, headers={})
35
+ Request.send('get', uri_path("time_machines",id.to_s), {}, env, headers)
36
+ end
37
+
38
+ def self.start_afresh(id, params={}, env=nil, headers={})
39
+ Request.send('post', uri_path("time_machines",id.to_s,"start_afresh"), params, env, headers)
40
+ end
41
+
42
+ def self.travel_forward(id, params={}, env=nil, headers={})
43
+ Request.send('post', uri_path("time_machines",id.to_s,"travel_forward"), params, env, headers)
44
+ end
45
+
46
+ end # ~TimeMachine
47
+ end # ~ChargeBee
@@ -141,6 +141,11 @@ module ChargeBee
141
141
  return resource_migration;
142
142
  end
143
143
 
144
+ def time_machine()
145
+ time_machine = get(:time_machine, TimeMachine);
146
+ return time_machine;
147
+ end
148
+
144
149
 
145
150
  def unbilled_charges()
146
151
  unbilled_charges = get_list(:unbilled_charges, UnbilledCharge,
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.3.1
4
+ version: 2.3.2
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: 2017-07-21 00:00:00.000000000 Z
12
+ date: 2017-07-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_pure
@@ -117,6 +117,7 @@ files:
117
117
  - lib/chargebee/models/subscription.rb
118
118
  - lib/chargebee/models/subscription_estimate.rb
119
119
  - lib/chargebee/models/third_party_payment_method.rb
120
+ - lib/chargebee/models/time_machine.rb
120
121
  - lib/chargebee/models/transaction.rb
121
122
  - lib/chargebee/models/unbilled_charge.rb
122
123
  - lib/chargebee/request.rb