zuora_connect 3.2.2 → 3.2.4

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
  SHA256:
3
- metadata.gz: fcc9097dca797e7574ab64d1d168f9c97503bec9575a312ab82a36dbc57bf60c
4
- data.tar.gz: 56b303735ab06d5ae0e04a5c065039f4bda146782d6d9cca7f8b9e393f1758eb
3
+ metadata.gz: 616f15048a650618223bf57d362d0284f50a0d66b36228940a684ca364432dfb
4
+ data.tar.gz: 702b6927ff3a14059378ee64be74f7cb8403cb6794d688a76f0d9aea03da32b6
5
5
  SHA512:
6
- metadata.gz: 2b3ec3561a78b529378a1ed8946ed7445d63542e21bc3ef734959d2b41638855c5f052b4b57de70eac3f14ec5226f0e137135fcd986add16524b79fb7990d811
7
- data.tar.gz: 515298d976b032e723a9bbdc59a6d17a457e718354a9a2f8a7e4c114df4371dcb6e2e15d21fc422bdf3351f5eced0612973f284fa7d0597bdf1c4b620136b430
6
+ metadata.gz: 8ae3fc967fa600378ff3d40df0515fe781fc1c3e6fab1598581eca49d123903f2e91f944dc6db64294350b3a73674ca42912e45aa78bbe70bd83f326ea815005
7
+ data.tar.gz: 37549efe15ebef568920fa4b8923d0f2106486b5beffbe7a3e04ebbda3dea2ff358e656d7fee5e9771efac4e3ac6c79ef79d73a64e2682d054cddf536f2aa7a5
@@ -20,6 +20,8 @@ module ZuoraConnect
20
20
 
21
21
  @appinstance = ZuoraConnect::AppInstance.find_by(id: app_instance_id)
22
22
  ZuoraConnect::ZuoraUser.current_user_id = 0
23
+ zuora_org_ids = cookies['Zuora-Org-Ids'] || request.headers['Zuora-Org-Ids']
24
+ ZuoraConnect::ZuoraUser.current_org_ids = zuora_org_ids.split('|') if zuora_org_ids
23
25
  if @appinstance.blank?
24
26
  Apartment::Tenant.switch!('public')
25
27
  begin
@@ -3,7 +3,7 @@ module ZuoraConnect
3
3
  self.table_name = "zuora_users"
4
4
  attr_accessor :session
5
5
 
6
- cattr_accessor :current_user_id, :current_org_id, :current_org_child_org_ids
6
+ cattr_accessor :current_user_id, :current_org_ids
7
7
 
8
8
  # zuora_user_id/zuora_entity_id both come from cookie or headers
9
9
  # zuora_current_identity comes from session
@@ -67,17 +67,18 @@ BEGIN
67
67
  -- Finally, we'll select everything from this schema's target table, plus the schema's name,
68
68
  -- and insert them into our new aggregate table
69
69
  EXECUTE format(
70
- 'SELECT string_agg(column_name, '','') from information_schema.columns where table_name = ''%s'' AND table_schema = ''%s''',
70
+ 'SELECT string_agg(column_name, '','' order by column_name) from information_schema.columns where table_name = ''%s'' AND table_schema = ''%s''',
71
71
  table_name, schema.nspname
72
72
  ) into fields_order;
73
73
 
74
74
  raise notice 'Importing Schema %', schema.nspname;
75
75
 
76
76
  EXECUTE format(
77
- 'INSERT INTO "public".%I (schema_name, %s) (SELECT ''%s'' AS schema_name, * FROM %I.%I %s )',
77
+ 'INSERT INTO "public".%I (schema_name, %s) (SELECT ''%s'' AS schema_name, %s FROM %I.%I %s )',
78
78
  aggregate_table_name,
79
79
  fields_order,
80
80
  schema.nspname,
81
+ fields_order,
81
82
  schema.nspname, table_name,
82
83
  filter
83
84
  );
@@ -66,62 +66,9 @@ module ZuoraConnect
66
66
  end
67
67
 
68
68
  @zuora_user = ZuoraConnect::ZuoraUser.find_by(zuora_user_id: ZuoraConnect::ZuoraUser.current_user_id)
69
+ zuora_org_ids = request.headers["Zuora-Org-Ids"]
70
+ ZuoraConnect::ZuoraUser.current_org_ids = zuora_org_ids.split('|') if zuora_org_ids
69
71
 
70
- zuora_org_id = request.headers["Zuora-Org-Id"]
71
- zuora_return_nested_orgs_data = request.headers['Zuora-Return-Nested-Orgs-Data'].to_bool
72
- ZuoraConnect::ZuoraUser.current_org_id = zuora_org_id
73
- ZuoraConnect::ZuoraUser.current_org_child_org_ids = []
74
-
75
- if zuora_org_id.present? && zuora_return_nested_orgs_data
76
- cached_org_relationship = Redis.current.get("MultiOrgRelationship:#{@appinstance.id}")
77
-
78
- if cached_org_relationship.present?
79
- cached_org_relationship = JSON.parse(cached_org_relationship)
80
- ZuoraConnect::ZuoraUser.current_org_child_org_ids =
81
- get_child_orgs_from_relation_mapping(cached_org_relationship, ZuoraConnect::ZuoraUser.current_org_id)
82
- else
83
- begin
84
- zuora_client = @appinstance.target_login.client
85
- child_org_list, _ =
86
- zuora_client.rest_call(
87
- url: zuora_client.
88
- rest_endpoint("tenant-registry/listChildOrgsForOrg/#{ZuoraConnect::ZuoraUser.current_org_id}").
89
- gsub('v1/', ''),
90
- session_type: zuora_client.is_a?(ZuoraAPI::Oauth) ? :bearer : :basic,
91
- zuora_track_id: ZuoraConnect::RequestIdMiddleware.zuora_request_id
92
- )
93
-
94
- root_org_id = (child_org_list || {}).dig(0, 'rootOrgId').to_s
95
- if root_org_id.present?
96
- root_child_org_list, _ =
97
- zuora_client.rest_call(
98
- url: zuora_client.
99
- rest_endpoint("tenant-registry/listChildOrgsForOrg/#{root_org_id}").
100
- gsub('v1/', ''),
101
- session_type: zuora_client.is_a?(ZuoraAPI::Oauth) ? :bearer : :basic,
102
- zuora_track_id: ZuoraConnect::RequestIdMiddleware.zuora_request_id
103
- )
104
-
105
- org_relationship = org_relation_mapping(root_child_org_list)
106
- Redis.current.setex(
107
- "MultiOrgRelationship:#{@appinstance.id}",
108
- 1.day,
109
- org_relationship.to_json
110
- )
111
-
112
- ZuoraConnect::ZuoraUser.current_org_child_org_ids =
113
- get_child_orgs_from_relation_mapping(org_relationship, ZuoraConnect::ZuoraUser.current_org_id)
114
- else
115
- ZuoraConnect.logger.info("Failed to get root org id for #{@appinstance.id}")
116
- end
117
- rescue ZuoraAPI::Exceptions::ZuoraAPIError => ex
118
- render json: {
119
- status: 401,
120
- message: ex.message
121
- }.to_json, status: :unauthorized
122
- end
123
- end
124
- end
125
72
  end
126
73
  end
127
74
 
@@ -282,40 +229,6 @@ module ZuoraConnect
282
229
  def hallway_integration?
283
230
  return (request.headers['ZuoraCurrentEntity'].present? || cookies['ZuoraCurrentEntity'].present?)
284
231
  end
285
-
286
- def org_relation_mapping(root_org_relation)
287
- relation = {}
288
-
289
- return relation if root_org_relation.blank?
290
-
291
- root_org_id = root_org_relation.dig(0, 'rootOrgId')
292
- relation[root_org_id] = []
293
-
294
- root_org_relation.each do |child_org|
295
- relation[child_org['id']] = []
296
- end
297
-
298
- root_org_relation.each do |child_org|
299
- parent_org_id = child_org['parentOrgId']
300
- relation[parent_org_id].push(child_org['id'])
301
- end
302
-
303
- relation
304
- end
305
-
306
- def get_child_orgs_from_relation_mapping(relation_mapping, org_id)
307
- if relation_mapping.blank? || org_id.blank? || relation_mapping[org_id].blank?
308
- return []
309
- end
310
-
311
- child_orgs = relation_mapping[org_id].dup
312
- relation_mapping[org_id].each do |child_org_id|
313
- child_orgs += get_child_orgs_from_relation_mapping(relation_mapping, child_org_id)
314
- end
315
-
316
- child_orgs
317
- end
318
-
319
232
  def create_new_instance
320
233
  ZuoraConnect::AppInstance.read_master_db do
321
234
  Thread.current[:appinstance] = nil
@@ -646,57 +559,8 @@ module ZuoraConnect
646
559
  session["appInstance"] = @appinstance.id
647
560
  end
648
561
 
649
- zuora_org_id = cookies['Zuora-Org-Id'] || request.headers['Zuora-Org-Id']
650
- zuora_return_nested_orgs_data =
651
- cookies['Zuora-Return-Nested-Orgs-Data'].to_bool ||
652
- request.headers['Zuora-Return-Nested-Orgs-Data'].to_bool
653
- ZuoraConnect::ZuoraUser.current_org_id = zuora_org_id
654
- ZuoraConnect::ZuoraUser.current_org_child_org_ids = []
655
-
656
- if zuora_org_id.present? && zuora_return_nested_orgs_data
657
- cached_org_relationship = Redis.current.get("MultiOrgRelationship:#{@appinstance.id}")
658
-
659
- if cached_org_relationship.present?
660
- cached_org_relationship = JSON.parse(cached_org_relationship)
661
- ZuoraConnect::ZuoraUser.current_org_child_org_ids =
662
- get_child_orgs_from_relation_mapping(cached_org_relationship, ZuoraConnect::ZuoraUser.current_org_id)
663
- else
664
- child_org_list, _ =
665
- zuora_client.rest_call(
666
- url: zuora_client.
667
- rest_endpoint("tenant-registry/listChildOrgsForOrg/#{ZuoraConnect::ZuoraUser.current_org_id}").
668
- gsub('v1/', ''),
669
- session_type: zuora_client.is_a?(ZuoraAPI::Oauth) ? :bearer : :basic,
670
- headers: auth_headers,
671
- zuora_track_id: ZuoraConnect::RequestIdMiddleware.zuora_request_id
672
- )
673
-
674
- root_org_id = (child_org_list || {}).dig(0, 'rootOrgId').to_s
675
- if root_org_id.present?
676
- root_child_org_list, _ =
677
- zuora_client.rest_call(
678
- url: zuora_client.
679
- rest_endpoint("tenant-registry/listChildOrgsForOrg/#{root_org_id}").
680
- gsub('v1/', ''),
681
- session_type: zuora_client.is_a?(ZuoraAPI::Oauth) ? :bearer : :basic,
682
- headers: auth_headers,
683
- zuora_track_id: ZuoraConnect::RequestIdMiddleware.zuora_request_id
684
- )
685
-
686
- org_relationship = org_relation_mapping(root_child_org_list)
687
- Redis.current.setex(
688
- "MultiOrgRelationship:#{@appinstance.id}",
689
- 1.day,
690
- org_relationship.to_json
691
- )
692
-
693
- ZuoraConnect::ZuoraUser.current_org_child_org_ids =
694
- get_child_orgs_from_relation_mapping(org_relationship, ZuoraConnect::ZuoraUser.current_org_id)
695
- else
696
- ZuoraConnect.logger.info("Failed to get root org id for #{@appinstance.id}")
697
- end
698
- end
699
- end
562
+ zuora_org_ids = cookies['Zuora-Org-Ids'] || request.headers['Zuora-Org-Ids']
563
+ ZuoraConnect::ZuoraUser.current_org_ids = zuora_org_ids.split('|') if zuora_org_ids
700
564
 
701
565
  rescue ZuoraAPI::Exceptions::ZuoraAPIAuthenticationTypeError => ex
702
566
  output_xml, input_xml, response = zuora_client.soap_call(errors: [], z_session: false, zuora_track_id: ZuoraConnect::RequestIdMiddleware.zuora_request_id) do |xml|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZuoraConnect
4
- VERSION = "3.2.2"
4
+ VERSION = "3.2.4"
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.2.2
4
+ version: 3.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-06 00:00:00.000000000 Z
11
+ date: 2023-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment