zuora_api 1.4.08 → 1.4.09

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
  SHA1:
3
- metadata.gz: 4fe43ebde7a9182999d9648cdfadd9f0b99321d5
4
- data.tar.gz: ad7953d72887cf7fe953d1c9c47a54bfd022c27b
3
+ metadata.gz: 795e782dca68d2153bb987dbdc2e42c4bf5864d6
4
+ data.tar.gz: 280ca629bff273729c291f53f7ad453728ef2e8c
5
5
  SHA512:
6
- metadata.gz: 511725f39fe2ccd481b1e7f805b64a07d360c6ff8e1f7c1500acf9a3512c3d6c9426c98f8fb6bb44c45a4e6cc2e612a5b0778474bf7fee8be23481314a4b6d76
7
- data.tar.gz: b67a603e0e5399173fb1bd46a2eeb200dd5abbfeec00915bca57c5fbd21f6b897f3ed1d4a1f81779044df3bc11ea5fcf6a05a2462abf055b6631761664ab252c
6
+ metadata.gz: daaad5659d3fac1554c0d12971134f2ebb1788eaeee366983e5838ba11c5ac85b6523acc7f9579577260d9bc4b1247e7efb45a305c623a44c2bd251a80194ab3
7
+ data.tar.gz: 1a04d03bbf766657355fb32b80cae0e57988ea92cae36c9e3143175f5aac492e4da4b4db7a23fe98ce3a208c8284dc9d50749bd6e3ca66189388c74df441974f
data/Gemfile.lock CHANGED
@@ -1,31 +1,31 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zuora_api (1.4.08)
4
+ zuora_api (1.4.09)
5
5
  httparty
6
- nokogiri (~> 1.6.8)
6
+ nokogiri
7
7
  railties (>= 4.1.0, < 5.1)
8
8
  rubyzip
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actionpack (5.0.6)
14
- actionview (= 5.0.6)
15
- activesupport (= 5.0.6)
13
+ actionpack (5.0.7)
14
+ actionview (= 5.0.7)
15
+ activesupport (= 5.0.7)
16
16
  rack (~> 2.0)
17
17
  rack-test (~> 0.6.3)
18
18
  rails-dom-testing (~> 2.0)
19
19
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
20
- actionview (5.0.6)
21
- activesupport (= 5.0.6)
20
+ actionview (5.0.7)
21
+ activesupport (= 5.0.7)
22
22
  builder (~> 3.1)
23
23
  erubis (~> 2.7.0)
24
24
  rails-dom-testing (~> 2.0)
25
25
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
26
- activesupport (5.0.6)
26
+ activesupport (5.0.7)
27
27
  concurrent-ruby (~> 1.0, >= 1.0.2)
28
- i18n (~> 0.7)
28
+ i18n (>= 0.7, < 2)
29
29
  minitest (~> 5.1)
30
30
  tzinfo (~> 1.1)
31
31
  addressable (2.5.2)
@@ -34,25 +34,25 @@ GEM
34
34
  concurrent-ruby (1.0.5)
35
35
  crack (0.4.3)
36
36
  safe_yaml (~> 1.0.0)
37
- crass (1.0.3)
37
+ crass (1.0.4)
38
38
  diff-lcs (1.3)
39
39
  docile (1.1.5)
40
40
  erubis (2.7.0)
41
41
  hashdiff (0.3.7)
42
- httparty (0.16.0)
42
+ httparty (0.16.2)
43
43
  multi_xml (>= 0.5.2)
44
- i18n (0.9.5)
44
+ i18n (1.0.0)
45
45
  concurrent-ruby (~> 1.0)
46
46
  json (2.1.0)
47
- loofah (2.2.0)
47
+ loofah (2.2.2)
48
48
  crass (~> 1.0.2)
49
49
  nokogiri (>= 1.5.9)
50
50
  method_source (0.9.0)
51
- mini_portile2 (2.1.0)
51
+ mini_portile2 (2.3.0)
52
52
  minitest (5.11.3)
53
53
  multi_xml (0.6.0)
54
- nokogiri (1.6.8.1)
55
- mini_portile2 (~> 2.1.0)
54
+ nokogiri (1.8.2)
55
+ mini_portile2 (~> 2.3.0)
56
56
  public_suffix (3.0.1)
57
57
  rack (2.0.4)
58
58
  rack-test (0.6.3)
@@ -60,11 +60,11 @@ GEM
60
60
  rails-dom-testing (2.0.3)
61
61
  activesupport (>= 4.2.0)
62
62
  nokogiri (>= 1.6)
63
- rails-html-sanitizer (1.0.3)
64
- loofah (~> 2.0)
65
- railties (5.0.6)
66
- actionpack (= 5.0.6)
67
- activesupport (= 5.0.6)
63
+ rails-html-sanitizer (1.0.4)
64
+ loofah (~> 2.2, >= 2.2.2)
65
+ railties (5.0.7)
66
+ actionpack (= 5.0.7)
67
+ activesupport (= 5.0.7)
68
68
  method_source
69
69
  rake (>= 0.8.7)
70
70
  thor (>= 0.18.1, < 2.0)
@@ -7,8 +7,10 @@ module ZuoraAPI
7
7
  attr_reader :code, :response
8
8
  attr_writer :default_message
9
9
 
10
- def initialize(message = nil)
10
+ def initialize(message = nil,response=nil, code =nil)
11
+ @code = code
11
12
  @message = message
13
+ @response = response
12
14
  @default_message = "Error with Zuora Session."
13
15
  end
14
16
 
@@ -283,27 +283,47 @@ module ZuoraAPI
283
283
  error = body.xpath('//fns:FaultCode', 'fns' =>'http://fault.api.zuora.com/').text
284
284
  message = body.xpath('//fns:FaultMessage', 'fns' =>'http://fault.api.zuora.com/').text
285
285
 
286
+ if error.blank? || message.blank?
287
+ error = body.xpath('//faultcode').text
288
+ message = body.xpath('//faultstring').text
289
+ end
290
+
286
291
  if error.blank? || message.blank?
287
292
  error = body.xpath('//ns1:Code', 'ns1' =>'http://api.zuora.com/').text
288
293
  message = body.xpath('//ns1:Message', 'ns1' =>'http://api.zuora.com/').text
289
294
  end
290
- if error.blank? || message.blank?
291
- error = body.xpath('//faultcode').text
292
- message = body.xpath('//faultstring').text
295
+
296
+ #Update/Create/Delete Calls with multiple requests and responses
297
+ if body.xpath('//ns1:result', 'ns1' =>'http://api.zuora.com/').size > 0 && body.xpath('//ns1:Errors', 'ns1' =>'http://api.zuora.com/').size > 0
298
+ error = []
299
+ success = []
300
+ body.xpath('//ns1:result', 'ns1' =>'http://api.zuora.com/').each_with_index do |call, object_index|
301
+
302
+ if call.xpath('./ns1:Success', 'ns1' =>'http://api.zuora.com/').text == 'false'
303
+ message = "#{call.xpath('./*/ns1:Code', 'ns1' =>'http://api.zuora.com/').text}::#{call.xpath('./*/ns1:Message', 'ns1' =>'http://api.zuora.com/').text}"
304
+ error.push(message)
305
+ else
306
+ success.push(call.xpath('./ns1:Id', 'ns1' =>'http://api.zuora.com/').text)
307
+ end
308
+ end
293
309
  end
294
310
 
295
311
  if error.present?
296
- if error == "INVALID_SESSION"
297
- raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{error}::#{message}")
298
- end
299
- if error == "REQUEST_EXCEEDED_LIMIT"
300
- raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{error}::#{message}")
301
- end
302
- if error == "LOCK_COMPETITION"
303
- raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{error}::#{message}")
304
- end
305
- if error.present?
306
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{error}::#{message}")
312
+ if error.class == String
313
+ if error == "INVALID_SESSION"
314
+ raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{error}::#{message}", body, response.code)
315
+ end
316
+ if error == "REQUEST_EXCEEDED_LIMIT"
317
+ raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{error}::#{message}", body, response.code)
318
+ end
319
+ if error == "LOCK_COMPETITION"
320
+ raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{error}::#{message}", body, response.code)
321
+ end
322
+ if error.present?
323
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{error}::#{message}", body, response.code)
324
+ end
325
+ elsif error.class == Array
326
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new(error.group_by {|v| v}.map {|k,v| "(#{v.size}x) - #{k}"}.join(', '), body, response.code, error, success)
307
327
  end
308
328
  end
309
329
 
@@ -314,42 +334,42 @@ module ZuoraAPI
314
334
 
315
335
  #Authentication failed
316
336
  if codes_array.map{|code| code.to_s.slice(6,7).to_i}.include?(11) || response.code == 401
317
- raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{messages_array.join(', ')}")
337
+ raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{messages_array.join(', ')}", body, response.code)
318
338
  end
319
339
 
320
340
  #Zuora REST Create Amendment error #Authentication failed
321
341
  if body["faultcode"].present? && body["faultcode"] == "fns:INVALID_SESSION"
322
- raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{body['faultstring']}")
342
+ raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{body['faultstring']}", body, response.code)
323
343
  end
324
344
 
325
345
  #Request exceeded limit
326
346
  if codes_array.map{|code| code.to_s.slice(6,7).to_i}.include?(70)
327
- raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{messages_array.join(', ')}")
347
+ raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{messages_array.join(', ')}", body, response.code)
328
348
  end
329
349
 
330
350
  #Locking contention
331
351
  if codes_array.map{|code| code.to_s.slice(6,7).to_i}.include?(50)
332
- raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{messages_array.join(', ')}")
352
+ raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{messages_array.join(', ')}", body, response.code)
333
353
  end
334
354
 
335
355
  #All Errors catch
336
356
  if codes_array.size > 0
337
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{messages_array.join(', ')}")
357
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{messages_array.join(', ')}", body, response.code)
338
358
  end
339
359
 
340
360
  #Zuora REST Query Errors
341
361
  if body["faultcode"].present?
342
362
  case body["faultcode"]
343
363
  when "fns:MALFORMED_QUERY"
344
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{body["faultcode"]}::#{body["faultstring"]}")
364
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{body["faultcode"]}::#{body["faultstring"]}", body, response.code)
345
365
  when "fns:REQUEST_EXCEEDED_LIMIT"
346
- raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{body["faultcode"]}::#{body["faultstring"]}")
366
+ raise ZuoraAPI::Exceptions::ZuoraAPIRequestLimit.new("#{body["faultcode"]}::#{body["faultstring"]}", body, response.code)
347
367
  when "fns:LOCK_COMPETITION"
348
- raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{body["faultcode"]}::#{body["faultstring"]}")
368
+ raise ZuoraAPI::Exceptions::ZuoraAPILockCompetition.new("#{body["faultcode"]}::#{body["faultstring"]}", body, response.code)
349
369
  when "INVALID_SESSION"
350
- raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{body["faultcode"]}::#{body["faultstring"]}")
370
+ raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new("#{body["faultcode"]}::#{body["faultstring"]}", body, response.code)
351
371
  else
352
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{body["faultcode"]}::#{body["faultstring"]}")
372
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{body["faultcode"]}::#{body["faultstring"]}", body, response.code)
353
373
  end
354
374
  end
355
375
 
@@ -358,7 +378,7 @@ module ZuoraAPI
358
378
  (body["Errors"] || []).select { |obj| errors.push(obj["Message"]) }.compact
359
379
  (body["errors"] || []).select { |obj| errors.push(obj["Message"]) }.compact
360
380
  if errors.size > 0
361
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{errors.join(", ")}", nil, nil, errors)
381
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{errors.join(", ")}", body, response.code, errors)
362
382
  end
363
383
  end
364
384
  end
@@ -369,13 +389,13 @@ module ZuoraAPI
369
389
  all_success = body.select {|obj| obj['Success'] || obj['success']}.compact
370
390
 
371
391
  if all_errors.size > 0
372
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{all_errors.flatten.group_by {|error| error['Message']}.keys.uniq.join(' ')}", nil, nil, all_errors, all_success )
392
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{all_errors.flatten.group_by {|error| error['Message']}.keys.uniq.join(' ')}", body, response.code, all_errors, all_success )
373
393
  end
374
394
  end
375
395
 
376
396
  #All other errors
377
397
  if response.code != 200
378
- raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{response.message}")
398
+ raise ZuoraAPI::Exceptions::ZuoraAPIError.new("#{response.message}", body, response.code)
379
399
  end
380
400
  end
381
401
  end
@@ -670,7 +690,7 @@ module ZuoraAPI
670
690
  end
671
691
  end
672
692
  rescue Exception => e
673
- Rails.logger.fatal('GetFile') {"Download Failed: #{response_save} - #{e.message}"}
693
+ Rails.logger.fatal('GetFile') {"Download Failed: #{response_save} - #{e.class} : #{e.message}"}
674
694
  Rails.logger.fatal('GetFile') {"Download Failed: #{e.backtrace.join("\n")}"}
675
695
  raise
676
696
  end
@@ -1,3 +1,3 @@
1
1
  module ZuoraAPI
2
- VERSION = "1.4.08"
2
+ VERSION = "1.4.09"
3
3
  end
data/zuora_api.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rspec", "~> 3.0"
24
24
  spec.add_development_dependency("webmock")
25
25
  spec.add_development_dependency("simplecov")
26
- spec.add_dependency("nokogiri", "~>1.6.8")
26
+ spec.add_dependency("nokogiri")
27
27
  spec.add_dependency("httparty")
28
28
  spec.add_dependency("rubyzip")
29
29
  spec.add_dependency("railties", ">= 4.1.0", "< 5.1")
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.08
4
+ version: 1.4.09
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: 2018-02-26 00:00:00.000000000 Z
11
+ date: 2018-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: nokogiri
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 1.6.8
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 1.6.8
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: httparty
99
99
  requirement: !ruby/object:Gem::Requirement