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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 616f15048a650618223bf57d362d0284f50a0d66b36228940a684ca364432dfb
|
4
|
+
data.tar.gz: 702b6927ff3a14059378ee64be74f7cb8403cb6794d688a76f0d9aea03da32b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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, :
|
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,
|
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
|
-
|
650
|
-
|
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|
|
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.
|
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-
|
11
|
+
date: 2023-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: apartment
|