zuora_connect 3.2.2 → 3.2.4

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: 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