zuora_api 1.9.09 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/zuora_api/login.rb +38 -8
- data/lib/zuora_api/logins/oauth.rb +1 -1
- data/lib/zuora_api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17131e6d6129f3831868f5a029b5c1f781e7fb31ca31fddd682b8bd0a3994f68
|
4
|
+
data.tar.gz: 748d5ac46b7647dd5ebfaf2338de458a2ff42e65d138b045dcd40e1eb5741f2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 289f4b0e533dbc666d649017ca97669525adc14976d135bbd9191955f5fe70384c3506261d65b89071752e1a23137593d70cb4afd47805a67a2b400e34e7fe3f
|
7
|
+
data.tar.gz: c85623dad76f6c4d02a49bbdddb602191c709576717cc2fad66a2b5324ff9824469fb3d1a70e98ad07c477a3b0191e47e1c5890e93bd7a13aaf5937302d0b8e4
|
data/lib/zuora_api/login.rb
CHANGED
@@ -45,9 +45,9 @@ module ZuoraAPI
|
|
45
45
|
ZuoraAPI::Exceptions::ZuoraUnexpectedError
|
46
46
|
].freeze
|
47
47
|
|
48
|
-
attr_accessor :region, :url, :wsdl_number, :current_session, :bearer_token, :oauth_session_expires_at, :environment, :status, :errors, :current_error, :user_info, :tenant_id, :tenant_name, :entity_id, :timeout_sleep, :hostname, :zconnect_provider
|
48
|
+
attr_accessor :region, :url, :wsdl_number, :current_session, :bearer_token, :oauth_session_expires_at, :environment, :status, :errors, :current_error, :user_info, :tenant_id, :tenant_name, :entity_id, :entity_identifier, :entity_header_type, :timeout_sleep, :hostname, :zconnect_provider
|
49
49
|
|
50
|
-
def initialize(url: nil, entity_id: nil, session: nil, status: nil, bearer_token: nil, oauth_session_expires_at: nil, **keyword_args)
|
50
|
+
def initialize(url: nil, entity_id: nil, entity_identifier: nil, session: nil, status: nil, bearer_token: nil, oauth_session_expires_at: nil, **keyword_args)
|
51
51
|
raise "URL is nil or empty, but URL is required" if url.nil? || url.empty?
|
52
52
|
# raise "URL is improper. URL must contain zuora.com, zuora.eu, or zuora.na" if /zuora.com|zuora.eu|zuora.na/ === url
|
53
53
|
self.hostname = /(?<=https:\/\/|http:\/\/)(.*?)(?=\/|$)/.match(url)[0] if !/(?<=https:\/\/|http:\/\/)(.*?)(?=\/|$)/.match(url).nil?
|
@@ -61,6 +61,8 @@ module ZuoraAPI
|
|
61
61
|
self.url = url
|
62
62
|
end
|
63
63
|
self.entity_id = get_entity_id(entity_id: entity_id)
|
64
|
+
self.entity_identifier = entity_identifier
|
65
|
+
self.entity_header_type = :entity_id
|
64
66
|
self.errors = Hash.new
|
65
67
|
self.current_session = session
|
66
68
|
self.bearer_token = bearer_token
|
@@ -1022,12 +1024,41 @@ module ZuoraAPI
|
|
1022
1024
|
return self.get_file(url: self.aqua_endpoint("file/#{fileId}"))
|
1023
1025
|
end
|
1024
1026
|
|
1027
|
+
def entity_header
|
1028
|
+
if self.entity_header_type == :entity_name && self.entity_identifier.present?
|
1029
|
+
{ "entityName" => self.entity_identifier }
|
1030
|
+
elsif self.entity_id.present?
|
1031
|
+
{ "Zuora-Entity-Ids" => self.entity_id }
|
1032
|
+
else
|
1033
|
+
{}
|
1034
|
+
end
|
1035
|
+
end
|
1036
|
+
|
1037
|
+
def insert_entity_header(destination_headers, lookup_headers: nil)
|
1038
|
+
# The entity header may be added to a place other than where we look for it
|
1039
|
+
lookup_headers = destination_headers if lookup_headers.nil?
|
1040
|
+
|
1041
|
+
entity_header_options = %w(zuora-entity-ids entityid entityname)
|
1042
|
+
# If the customer doesn't supply an entity header, fill it in
|
1043
|
+
if (entity_header_options & lookup_headers.keys.map(&:downcase)).blank?
|
1044
|
+
entity_header = self.entity_header
|
1045
|
+
if entity_header.present?
|
1046
|
+
destination_headers.merge!(entity_header)
|
1047
|
+
entity_header_options_to_exclude =
|
1048
|
+
entity_header_options.
|
1049
|
+
reject { |header| header == entity_header.keys.first&.downcase }
|
1050
|
+
destination_headers.delete_if { |key, _| entity_header_options_to_exclude.include?(key.to_s.downcase) }
|
1051
|
+
end
|
1052
|
+
end
|
1053
|
+
end
|
1054
|
+
|
1025
1055
|
def describe_call(object = nil, log_errors = true)
|
1026
1056
|
tries ||= 2
|
1027
1057
|
|
1028
1058
|
base = self.url.include?(".com") ? self.url.split(".com")[0].concat(".com") : self.url.split(".eu")[0].concat(".eu")
|
1029
1059
|
url = object ? "#{base}/apps/api/describe/#{object}" : "#{base}/apps/api/describe/"
|
1030
|
-
headers =
|
1060
|
+
headers = { "Content-Type" => "text/xml; charset=utf-8" }.merge(self.entity_header)
|
1061
|
+
|
1031
1062
|
response = HTTParty.get(url, headers: {"Authorization" => self.get_session(prefix: true, auth_type: :basic), "User-Agent" => USER_AGENT}.merge(headers), :timeout => 130)
|
1032
1063
|
|
1033
1064
|
raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new(self.current_error.present? ? self.current_error : 'Describe call 401', response) if response.code == 401
|
@@ -1114,10 +1145,8 @@ module ZuoraAPI
|
|
1114
1145
|
authentication_headers = {}
|
1115
1146
|
if z_session
|
1116
1147
|
authentication_headers = {"Authorization" => self.get_session(prefix: true, auth_type: session_type, zuora_track_id: zuora_track_id) }
|
1117
|
-
|
1118
|
-
|
1119
|
-
authentication_headers.delete_if { |key, value| ["entityId", "entityName"].include?(key.to_s) }
|
1120
|
-
end
|
1148
|
+
|
1149
|
+
self.insert_entity_header(authentication_headers, lookup_headers: headers)
|
1121
1150
|
end
|
1122
1151
|
headers['Zuora-Track-Id'] = zuora_track_id if zuora_track_id.present?
|
1123
1152
|
headers['User-Agent'] = USER_AGENT
|
@@ -1282,7 +1311,8 @@ module ZuoraAPI
|
|
1282
1311
|
http.use_ssl = true if !uri.scheme.nil? && uri.scheme.downcase == 'https'
|
1283
1312
|
if z_session
|
1284
1313
|
headers = headers.merge({"Authorization" => self.get_session(prefix: true)})
|
1285
|
-
|
1314
|
+
|
1315
|
+
self.insert_entity_header(headers)
|
1286
1316
|
end
|
1287
1317
|
|
1288
1318
|
headers['Zuora-Track-Id'] = zuora_track_id if zuora_track_id.present?
|
@@ -32,7 +32,7 @@ module ZuoraAPI
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def get_z_session(debug: false, zuora_track_id: nil)
|
35
|
-
headers = self.
|
35
|
+
headers = self.entity_header
|
36
36
|
headers['Zuora-Track-Id'] = zuora_track_id if zuora_track_id.present?
|
37
37
|
output_json, response = self.rest_call(:url => self.rest_endpoint("connections"), :session_type => :bearer, :headers => headers)
|
38
38
|
begin
|
data/lib/zuora_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zuora_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zuora Strategic Solutions Group
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|