zuora_connect 1.0.1 → 1.1.0

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: 60246e1ca36f66fba7eecb4903262715f37f190a
4
- data.tar.gz: d2e9a02c090cd3dd20968d59c660395ab132bf9a
3
+ metadata.gz: 42044116d3463337d0e299acf27a87d61b2bf062
4
+ data.tar.gz: 49bf8ebf4242594ef406e2b9e9a29369150322f5
5
5
  SHA512:
6
- metadata.gz: 8ffa066023e356a9339bec3a40bae4842bca29e2e0afaff267538862401ee8765f21e66cdef56bf6f73289353379afbbdb140846da70e851932018546efeb2b2
7
- data.tar.gz: 50c4ccae0d41690143e42d92ed10bc57b32f66879417bbd2a8a6fb25670a68ceb2348dc4c72505dec03c59a5f93b41cea4df831c33a99ca40f25130a3fa9820a
6
+ metadata.gz: 0159a60522458ac5d4527420f51b0e0a9864a320cd541e4a46f0fb57e08c49f6fb4ae6e78de7d2c2e9ddc63611dd34e8480b2c42cbae6c7d01b248bdcb370c78
7
+ data.tar.gz: 1df1c2d11a03f1e26b9c551d371dce00a9eb66613a72f9a3acead6235c93e69cbb38cccd5487073077e4b36fde2c2c3f5ad05700e09877b4443ccb80e6e1ce97
@@ -52,7 +52,13 @@ module ZuoraConnect
52
52
  def save_data(session = Hash.new)
53
53
  self.logins.each do |key, login|
54
54
  if login.tenant_type == "Zuora"
55
- session["#{self.id}::#{key}:session"] = login.client.current_session
55
+ if login.available_entities.size > 1 && Rails.application.config.session_store != ActionDispatch::Session::CookieStore
56
+ login.available_entities.each do |entity_key|
57
+ session["#{self.id}::#{key}::#{entity_key}:session"] = login.client(entity_key).current_session
58
+ end
59
+ else
60
+ session["#{self.id}::#{key}:session"] = login.client.current_session
61
+ end
56
62
  end
57
63
  end
58
64
  session["#{self.id}::task_data"] = self.task_data
@@ -85,7 +91,16 @@ module ZuoraConnect
85
91
  @task_data.each do |k,v|
86
92
  if k.match(/^(.*)_login$/)
87
93
  tmp = ZuoraConnect::Login.new(v)
88
- tmp.client.current_session = session["#{self.id}::#{k}:session"] if !session.nil? && v["tenant_type"] == "Zuora" && session["#{self.id}::#{k}:session"]
94
+ if !session.nil? && v["tenant_type"] == "Zuora"
95
+ if tmp.entities.size > 0
96
+ tmp.entities.each do |value|
97
+ entity_id = value["id"]
98
+ tmp.client(entity_id).current_session = session["#{self.id}::#{k}::#{entity_id}:session"] if !session.nil? && v["tenant_type"] == "Zuora" && session["#{self.id}::#{k}::#{entity_id}:session"]
99
+ end
100
+ else
101
+ tmp.client.current_session = session["#{self.id}::#{k}:session"] if !session.nil? && v["tenant_type"] == "Zuora" && session["#{self.id}::#{k}:session"]
102
+ end
103
+ end
89
104
  @logins[k] = tmp
90
105
  self.attr_builder(k, @logins[k])
91
106
  elsif k == "options"
@@ -2,7 +2,20 @@ module ZuoraConnect
2
2
  class Login
3
3
 
4
4
  def initialize (fields)
5
- self.attr_builder("client",::ZuoraAPI::Login.new(fields.map{|k,v| [k.to_sym, v]}.to_h)) if fields["tenant_type"] == "Zuora"
5
+ @clients = {}
6
+ if fields["tenant_type"] == "Zuora" && fields["entities"] && fields["entities"].size > 0
7
+ @clients["none"] = ::ZuoraAPI::Login.new(fields.map{|k,v| [k.to_sym, v]}.to_h)
8
+ fields["entities"].each do |entity|
9
+ login_fields = fields.map{|k,v| [k.to_sym, v]}.to_h
10
+ login_fields[:entity_id] = entity["id"]
11
+ @clients[entity["id"]] = ::ZuoraAPI::Login.new(login_fields)
12
+ end
13
+ elsif fields["tenant_type"] == "Zuora"
14
+ @clients["none"] = ::ZuoraAPI::Login.new(fields.map{|k,v| [k.to_sym, v]}.to_h)
15
+ end
16
+
17
+ self.attr_builder("available_entities",@clients.keys) if fields["tenant_type"] == "Zuora"
18
+
6
19
  fields.each do |k,v|
7
20
  self.attr_builder(k,v)
8
21
  end
@@ -13,5 +26,11 @@ module ZuoraConnect
13
26
  send("#{field}=", val)
14
27
  end
15
28
 
29
+ def client(id = nil)
30
+ return id.nil? ? @clients["none"] : @clients[id]
31
+ end
32
+
16
33
  end
17
34
  end
35
+
36
+
@@ -48,7 +48,7 @@ Apartment.configure do |config|
48
48
  # end
49
49
  #
50
50
  config.tenant_names = lambda { ZuoraConnect::AppInstance.pluck :id }
51
- config.excluded_models = ["ZuoraConnect::AppInstance"]
51
+ config.excluded_models = ["ZuoraConnect::AppInstance", "ActiveRecord::SessionStore::Session"]
52
52
 
53
53
  #
54
54
  # ==> PostgreSQL only options
@@ -0,0 +1,12 @@
1
+ class AddSessionsTable < ActiveRecord::Migration
2
+ def change
3
+ create_table :sessions do |t|
4
+ t.string :session_id, :null => false
5
+ t.text :data
6
+ t.timestamps
7
+ end
8
+
9
+ add_index :sessions, :session_id, :unique => true
10
+ add_index :sessions, :updated_at
11
+ end
12
+ end
@@ -3,6 +3,7 @@ require 'zuora_connect'
3
3
  require 'apartment'
4
4
  require 'httparty'
5
5
  require 'zuora_api'
6
+ require 'activerecord/session_store'
6
7
 
7
8
  module ZuoraConnect
8
9
  class Engine < ::Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord-session_store
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: apartment
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +44,14 @@ dependencies:
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: 1.0.1
47
+ version: 1.1.0
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: 1.0.1
54
+ version: 1.1.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: httparty
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -129,6 +143,7 @@ files:
129
143
  - db/migrate/20160718151733_create_connect_app_instances.rb
130
144
  - db/migrate/20161024162319_add_tokens_to_app_instance.rb
131
145
  - db/migrate/20161024220705_add_token_to_app_instance.rb
146
+ - db/migrate/20170131211919_add_sessions_table.rb
132
147
  - lib/tasks/zuora_connect_tasks.rake
133
148
  - lib/zuora_connect.rb
134
149
  - lib/zuora_connect/configuration.rb