zuora_connect 2.0.5m → 2.0.5n
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: 4fbd8460fb918735b2137693cfbd429c23bda6feb0da4f95282260dc096a2b7e
|
4
|
+
data.tar.gz: 78d63c2593390b1e74113f51d634506a6a52df4a327d410a4930d77cc3d0f0d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5a0b78587de5d76cfa05e9a76ec6a4227d1881148dde1d78890b17428b53d17b2f03da49b5c21956ba4fc9bce96b0d45894fcb5ce35f594a3bfce4f07c5f60d
|
7
|
+
data.tar.gz: 74d83f48ec8d18f65601dd63a9dc4514e074b5a6efb16fea26453b1cf45eabf686c3ece124c3259ae0e8c4a822ebb61442db1e7b4844da43dc4a784484bb797d
|
@@ -196,10 +196,10 @@ module ZuoraConnect
|
|
196
196
|
self.logitem(item: {tenant_ids: tenants, organization: organizations})
|
197
197
|
params = {
|
198
198
|
:name => self.task_data.dig('name'),
|
199
|
-
:zuora_domain => self.target_login.client.rest_domain,
|
200
199
|
:zuora_entity_ids => (self.task_data.dig(LOGIN_TENANT_DESTINATION,'entities') || []).map{|e| e['id']},
|
201
200
|
:zuora_tenant_ids => self.task_data.fetch('tenant_ids', []).map(&:to_s),
|
202
201
|
}
|
202
|
+
params.merge!({:zuora_domain => self.send(LOGIN_TENANT_DESTINATION).client.rest_domain }))
|
203
203
|
params = params.reject{|k,v| !self.attributes.keys.member?(k.to_s) || self[k] == v}
|
204
204
|
self.update_columns(params) if params.present?
|
205
205
|
end
|
@@ -196,58 +196,68 @@ module ZuoraConnect
|
|
196
196
|
}
|
197
197
|
return
|
198
198
|
end
|
199
|
-
|
200
|
-
user = (ENV['DEIS_APP'] || "Application").split('-').map(&:capitalize).join(' ')
|
201
199
|
|
202
|
-
|
203
|
-
'
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
200
|
+
ActiveRecord::Base.transaction do
|
201
|
+
ActiveRecord::Base.connection.execute('LOCK public.zuora_users IN ACCESS EXCLUSIVE MODE')
|
202
|
+
|
203
|
+
appinstances = ZuoraConnect::AppInstance.where("zuora_entity_ids ?& array[:entities] = true AND zuora_domain = :host", entities: [zuora_entity_id], host: zuora_client.rest_domain).pluck(:id, :name)
|
204
|
+
if appinstances.size > 0
|
205
|
+
ZuoraConnect.logger.warn("Double tenant create for '#{zuora_client.rest_domain}' - 'zuora_entity_id'")
|
206
|
+
redirect_to "https://#{zuora_host}/apps/newlogin.do?retURL=#{CGI.escape(request.fullpath)}"
|
207
|
+
return
|
208
|
+
end
|
209
|
+
|
210
|
+
user = (ENV['DEIS_APP'] || "Application").split('-').map(&:capitalize).join(' ')
|
211
|
+
body = {
|
212
|
+
'userId' => zuora_user_id,
|
213
|
+
'entityIds' => [zuora_entity_id.unpack("a8a4a4a4a12").join('-')],
|
214
|
+
'customAuthorities' => [],
|
215
|
+
'additionalInformation' => {
|
216
|
+
'description' => "This user is for #{user} application.",
|
217
|
+
'name' => "#{user} API User"
|
218
|
+
}
|
209
219
|
}
|
210
|
-
}
|
211
|
-
|
212
|
-
oauth_response, response = zuora_client.rest_call(method: :post, body: body.to_json, url: zuora_client.rest_endpoint("genesis/clients").gsub('v1/', ''), session_type: zuora_client.class == ZuoraAPI::Oauth ? :bearer : :basic, headers: zuora_client.class == ZuoraAPI::Oauth ? {} : {'Authorization' => "ZSession-a3N2w #{zuora_client.get_session(prefix: false, auth_type: :basic)}"})
|
213
220
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
221
|
+
oauth_response, response = zuora_client.rest_call(method: :post, body: body.to_json, url: zuora_client.rest_endpoint("genesis/clients").gsub('v1/', ''), session_type: zuora_client.class == ZuoraAPI::Oauth ? :bearer : :basic, headers: zuora_client.class == ZuoraAPI::Oauth ? {} : {'Authorization' => "ZSession-a3N2w #{zuora_client.get_session(prefix: false, auth_type: :basic)}"})
|
222
|
+
|
223
|
+
new_zuora_client = ZuoraAPI::Oauth.new(url: "https://#{zuora_host}", oauth_client_id: oauth_response["clientId"], oauth_secret: oauth_response["clientSecret"] )
|
224
|
+
if session["ZuoraCurrentUserInfo"].blank?
|
225
|
+
client_describe, response = new_zuora_client.rest_call(url: zuora_client.rest_endpoint("genesis/user/info").gsub('v1/', ''), session_type: :bearer)
|
226
|
+
else
|
227
|
+
client_describe = session["ZuoraCurrentUserInfo"]
|
228
|
+
end
|
229
|
+
|
230
|
+
Apartment::Tenant.switch!("public")
|
231
|
+
next_id = (ZuoraConnect::AppInstance.all.where(:access_token => nil).order(id: :desc).limit(1).pluck(:id).first || 24999999) + 1
|
232
|
+
begin
|
233
|
+
Apartment::Tenant.create(next_id.to_s)
|
234
|
+
rescue Apartment::TenantExists => ex
|
235
|
+
ZuoraConnect.logger.debug("Tenant Already Exists")
|
236
|
+
end
|
237
|
+
available_entities = client_describe["accessibleEntities"].select {|entity| entity['id'] == client_describe['defaultEntityId']}
|
238
|
+
task_data = {
|
239
|
+
"id": next_id,
|
240
|
+
"name": client_describe["tenantName"],
|
241
|
+
"mode": "Collections",
|
242
|
+
"status": "Running",
|
243
|
+
ZuoraConnect::AppInstance::LOGIN_TENANT_DESTINATION => {
|
244
|
+
"tenant_type": "Zuora",
|
245
|
+
"username": session["ZuoraCurrentIdentity"]["username"],
|
246
|
+
"url": new_zuora_client.url,
|
247
|
+
"status": "Active",
|
248
|
+
"oauth_client_id": oauth_response['clientId'],
|
249
|
+
"oauth_secret": oauth_response['clientSecret'],
|
250
|
+
"authentication_type": "OAUTH",
|
251
|
+
"entities": available_entities.map {|e| e.merge({'displayName' => client_describe["tenantName"]})}
|
252
|
+
},
|
253
|
+
"tenant_ids": available_entities.map{|e| e['entityId'] }.push(client_describe["tenantId"]).uniq,
|
254
|
+
}
|
220
255
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
rescue Apartment::TenantExists => ex
|
226
|
-
ZuoraConnect.logger.debug("Tenant Already Exists")
|
256
|
+
@appinstance = ZuoraConnect::AppInstance.new(:id => next_id, :zuora_logins => task_data, :oauth_expires_at => Time.now + 1000.years)
|
257
|
+
@appinstance.save(:validate => false)
|
258
|
+
@appinstance.refresh
|
259
|
+
session["appInstance"] = @appinstance.id
|
227
260
|
end
|
228
|
-
available_entities = client_describe["accessibleEntities"].select {|entity| entity['id'] == client_describe['defaultEntityId']}
|
229
|
-
task_data = {
|
230
|
-
"id": next_id,
|
231
|
-
"name": client_describe["tenantName"],
|
232
|
-
"mode": "Collections",
|
233
|
-
"status": "Running",
|
234
|
-
ZuoraConnect::AppInstance::LOGIN_TENANT_DESTINATION => {
|
235
|
-
"tenant_type": "Zuora",
|
236
|
-
"username": session["ZuoraCurrentIdentity"]["username"],
|
237
|
-
"url": new_zuora_client.url,
|
238
|
-
"status": "Active",
|
239
|
-
"oauth_client_id": oauth_response['clientId'],
|
240
|
-
"oauth_secret": oauth_response['clientSecret'],
|
241
|
-
"authentication_type": "OAUTH",
|
242
|
-
"entities": available_entities.map {|e| e.merge({'displayName' => client_describe["tenantName"]})}
|
243
|
-
},
|
244
|
-
"tenant_ids": available_entities.map{|e| e['entityId'] }.push(client_describe["tenantId"]).uniq,
|
245
|
-
}
|
246
|
-
|
247
|
-
@appinstance = ZuoraConnect::AppInstance.new(:id => next_id, :zuora_logins => task_data, :oauth_expires_at => Time.now + 1000.years)
|
248
|
-
@appinstance.save(:validate => false)
|
249
|
-
@appinstance.refresh
|
250
|
-
session["appInstance"] = @appinstance.id
|
251
261
|
rescue => ex
|
252
262
|
ZuoraConnect.logger.error(ex)
|
253
263
|
render "zuora_connect/static/error_unhandled", :locals => {:exception => ex}
|
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: 2.0.
|
4
|
+
version: 2.0.5n
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Connect Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: apartment
|