zuora_connect 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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