zuora_connect 3.2.0 → 3.2.2

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: d04a0fdede87007e236c944ed42bfc822846276fce78a310d22bb89961ed6bee
4
- data.tar.gz: fe5e370e36988531ff42f08e493a39118a9e0de078e3334df9c1a3c79ad3460f
3
+ metadata.gz: fcc9097dca797e7574ab64d1d168f9c97503bec9575a312ab82a36dbc57bf60c
4
+ data.tar.gz: 56b303735ab06d5ae0e04a5c065039f4bda146782d6d9cca7f8b9e393f1758eb
5
5
  SHA512:
6
- metadata.gz: c8836d2516b37c25dce916ed9f976a5bff9456254378301d7a2d5ca457b6d6fc778eb28a7d73d0c16f27f1adc683c12610f8f5b60461a962abae682a7e8d4a7c
7
- data.tar.gz: e8f4bff78c8fd8160f5a681743cdefe108d0b9a8a3e4e1e6c96fc72b9990e13c27800d91e8dc3b23db008425d23d5d7d3c53f1473300f5d817dda38e48998332
6
+ metadata.gz: 2b3ec3561a78b529378a1ed8946ed7445d63542e21bc3ef734959d2b41638855c5f052b4b57de70eac3f14ec5226f0e137135fcd986add16524b79fb7990d811
7
+ data.tar.gz: 515298d976b032e723a9bbdc59a6d17a457e718354a9a2f8a7e4c114df4371dcb6e2e15d21fc422bdf3351f5eced0612973f284fa7d0597bdf1c4b620136b430
@@ -66,6 +66,62 @@ module ZuoraConnect
66
66
  end
67
67
 
68
68
  @zuora_user = ZuoraConnect::ZuoraUser.find_by(zuora_user_id: ZuoraConnect::ZuoraUser.current_user_id)
69
+
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
69
125
  end
70
126
  end
71
127
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZuoraConnect
4
- VERSION = "3.2.0"
4
+ VERSION = "3.2.2"
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.0
4
+ version: 3.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-23 00:00:00.000000000 Z
11
+ date: 2023-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment