zuora_connect 3.0.2.pre.e → 3.0.2.pre.i

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
  SHA256:
3
- metadata.gz: 7d1be219ec34e867fe4e4b368cc47cf32331199fb75fba7b13e48b8302698899
4
- data.tar.gz: 693fcb0a597f5e4430d1ea71916034f0d8bf0ba1b6af24390d6c189c79db105f
3
+ metadata.gz: acded16be82a4aa36090fda0248e1d62b739e6ea1bbe39a7b365c137c07c4481
4
+ data.tar.gz: 263c629b6b718b068f4a6dcc3b9603ab04f0c6895d928a6f1841eae2e5343149
5
5
  SHA512:
6
- metadata.gz: 6e9758779261866d0bf013a3c27aafafc1e250310f43dcb4fb029b6602e54f00cfb29efcf903cd57d35a973decfbb1be33c7400ee9de148d860cd1bff4b51b77
7
- data.tar.gz: 669ca1f044f2b783288c7fe15e50a2f6c322278cda00e8fba0a0fe744ec5dc10ec6b95506ff4378b4f989af43aeb48a2662296e84d2d24d554f990f0eaf3a69c
6
+ metadata.gz: f06d9884240c45a96f17dc2a3927a8addca134d74d96fcdc38e0905b7d1d53f54e32babc95745fb241a754fbbc56d82e835bc1162f459364917abe8295861b63
7
+ data.tar.gz: 14deefe69fe5b535538f93092606b228397c60ef5ae11417d9c193ec349e50786abd1155673bec58b005cb0fae244f23411850f21cf3b7e5b1f5ef6ecd9f99e8
@@ -266,7 +266,8 @@ module ZuoraConnect
266
266
 
267
267
  params = {
268
268
  name: self.task_data.dig('name'),
269
- zuora_entity_ids: (self.task_data.dig(LOGIN_TENANT_DESTINATION,'entities') || []).map{|e| e['id']}.uniq,
269
+ zuora_entity_ids: (self.task_data.dig(LOGIN_TENANT_DESTINATION,'entities') || []).select {|entity| !entity['skip'].to_bool}.map{|e| e['id']}.uniq,
270
+ zuora_global_entity_id: task_data.dig(LOGIN_TENANT_DESTINATION, 'entities', 0, 'globalEntityId').to_i, # tenant id of the global/parent entity, 0 if nil
270
271
  zuora_tenant_ids: tenants.map(&:to_s).uniq,
271
272
  organizations: organizations
272
273
  }
@@ -277,6 +278,9 @@ module ZuoraConnect
277
278
  params.merge!({zuora_domain: client.rest_domain, environment: client.environment })
278
279
  end
279
280
  end
281
+
282
+ # makes it safe to add elements to params which don't correspond to existing columns in an app's schema
283
+ # rejects those elements which do not correspond to model attributes for your app
280
284
  params = params.reject{|k,v| !self.attributes.keys.member?(k.to_s) || self[k] == v}
281
285
  self.update_columns(params) if params.present?
282
286
  end
@@ -397,7 +401,8 @@ module ZuoraConnect
397
401
  end
398
402
  end
399
403
  rescue => ex
400
- if self['zuora_logins'].present?
404
+ refresh_count += 1
405
+ if self['zuora_logins'].present? && refresh_count < 3
401
406
  ZuoraConnect.logger.warn("REFRESH TASK - Fallback to local encrypted store", ex, self.default_ougai_items)
402
407
  skip_connect = true
403
408
  retry
@@ -812,7 +817,7 @@ module ZuoraConnect
812
817
  def strip_cache_data(object: {}, keys: ['applications', 'tokens','tenant_ids', 'organizations','user_settings'] )
813
818
  keys.each {|key| object.delete(key) }
814
819
  object.select {|k,v| k.include?('login') && v['tenant_type'] == 'Zuora'}.each do |login_key, login_data|
815
- object[login_key]['entities'] = login_data.fetch('entities',[]).map {|entity| entity.slice('id', 'tenantId', 'entityId', 'displayName')}
820
+ object[login_key]['entities'] = login_data.fetch('entities',[]).map {|entity| entity.slice('id', 'tenantId', 'entityId', 'displayName', 'identifier')}
816
821
  end
817
822
  return object
818
823
  end
@@ -1,27 +1,29 @@
1
1
  module ZuoraConnect
2
2
  class Login
3
-
3
+ attr_accessor :clients, :identifier_to_ids, :default_entity
4
4
  def initialize (fields)
5
- @clients = {}
5
+ self.clients = {}
6
+ self.identifier_to_ids = {}
6
7
  if fields["tenant_type"] == "Zuora"
7
8
  login_fields = fields.map{|k,v| [k.to_sym, v]}.to_h
8
9
  login_type = fields.dig("authentication_type").blank? ? 'Basic' : fields.dig("authentication_type").capitalize
9
10
 
10
11
  raise ZuoraConnect::Exceptions::InvalidCredentialSet.new("Cannot setup application with ZSession Login.") if login_type == "Session"
11
- @clients["Default"] = "::ZuoraAPI::#{login_type}".constantize.new(**login_fields)
12
- @default_entity = fields["entities"][0]["id"] if (fields.dig("entities") || []).size == 1
12
+ self.clients["Default"] = "::ZuoraAPI::#{login_type}".constantize.new(**login_fields)
13
+ self.default_entity = fields["entities"][0]["id"] if (fields.dig("entities") || []).size == 1
13
14
  if fields["entities"] && fields["entities"].size > 0
14
15
  fields["entities"].each do |entity|
15
- params = {:entity_id => entity["id"]}.merge(login_fields)
16
- @clients[entity["id"]] = "::ZuoraAPI::#{login_type}".constantize.new(**params)
16
+ params = {:entity_id => entity["id"], :entity_identifier => entity["identifier"]}.merge(login_fields)
17
+ self.clients[entity["id"]] = "::ZuoraAPI::#{login_type}".constantize.new(**params)
18
+ self.identifier_to_ids[entity["identifier"]] = entity["id"]
17
19
  end
18
20
  end
19
- self.attr_builder("available_entities", @clients.keys)
21
+ self.attr_builder("available_entities", self.clients.keys)
20
22
  end
21
23
  fields.each do |k,v|
22
24
  self.attr_builder(k,v)
23
25
  end
24
- @default_entity ||= "Default"
26
+ self.default_entity ||= "Default"
25
27
  end
26
28
 
27
29
  def attr_builder(field,val)
@@ -29,9 +31,19 @@ module ZuoraConnect
29
31
  send("#{field}=", val)
30
32
  end
31
33
 
32
- def client(id = @default_entity)
33
- return id.blank? ? @clients[@default_entity] : @clients[id]
34
- end
34
+ def client(id = self.default_entity)
35
+ use_entity_name = self.identifier_to_ids.keys.include?(id)
36
+
37
+ # Translate entity name to entity id
38
+ id = self.identifier_to_ids[id] if use_entity_name
39
+
40
+ client = id.blank? ? self.clients[self.default_entity] : self.clients[id]
35
41
 
42
+ if client
43
+ client.entity_header_type = use_entity_name ? :entity_name : :entity_id
44
+ end
45
+
46
+ client
47
+ end
36
48
  end
37
49
  end
@@ -1 +1 @@
1
- $('body').html('<%= escape_javascript render(:file=> "zuora_connect/static/error_handled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
1
+ $('body').html('<%= escape_javascript render(:template=> "zuora_connect/static/error_handled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
@@ -1 +1 @@
1
- $('body').html('<%= escape_javascript render(:file=> "zuora_connect/static/error_unhandled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
1
+ $('body').html('<%= escape_javascript render(:template=> "zuora_connect/static/error_unhandled", :formats => [:html], :locals => local_assigns, :layout => false) %>');
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZuoraConnect
4
- VERSION = '3.0.2-e'
4
+ VERSION = "3.0.2-i"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2.pre.e
4
+ version: 3.0.2.pre.i
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-18 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment