zuora_connect 3.2.0 → 3.2.2

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