zuora_api 1.6.08 → 1.6.10

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: b38288329a6baa01e730f395f812b078a0c88e7c
4
- data.tar.gz: bd7586d214743d2015f36ac8fc94d26a86673662
3
+ metadata.gz: 6ab1f61ed70054d159fa7b9b8835d6706be1c2e3
4
+ data.tar.gz: 765e41e2106129176e32224ff448ad6134a39b61
5
5
  SHA512:
6
- metadata.gz: 49ed5ff1b37a43a3fea62807501c33e6d1752f0b1caab30756ffc181521f86ac8e451b85530e0669ee8ee08afe5744f02ef7b8c6995c7458d859d6ba0609dee8
7
- data.tar.gz: 07946a9b121dbeb80985b831d58ffd7b65ed95bfd2a8578bad63d40d4e2eaa5a646303e422b942ebbb7a8197ed173ef8f558c9f86dcbcc74fc702575a9dd9be2
6
+ metadata.gz: 4adb062487388da25439e813dfc8e5301e1ec6c3f56a229ca5acb10904f2ece0a088d6a30d0a2ba11d35eb74368a5eebbd007dd17c0c972339fa8198ce085754
7
+ data.tar.gz: d7663dbccd7a31ae63cc694caf1c66c12fa0dd8f4bd7e7f262e06d20b06724518db9c07d490fefd35705be08f8838e3787858effec00a70f9ed00d41843c1d9c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zuora_api (1.6.08)
4
+ zuora_api (1.6.10)
5
5
  httparty
6
6
  nokogiri
7
7
  railties (>= 4.1.0, < 5.2)
@@ -549,7 +549,7 @@ module ZuoraAPI
549
549
  return products, catalog_map
550
550
  end
551
551
 
552
- def get_file(url: nil, headers: {}, count: 3, z_session: true, tempfile: true, file_path: defined?(Rails.root.join('tmp')) ? Rails.root.join('tmp') : Pathname.new(Dir.pwd), timeout_retries: 2, timeout: 120, session_type: :basic, **execute_params)
552
+ def get_file(url: nil, headers: {}, count: 3, z_session: true, tempfile: true, output_file_name: nil, add_timestamp: true, file_path: defined?(Rails.root.join('tmp')) ? Rails.root.join('tmp') : Pathname.new(Dir.pwd), timeout_retries: 2, timeout: 120, session_type: :basic, **execute_params)
553
553
  raise "file_path must be of class Pathname" if file_path.class != Pathname
554
554
 
555
555
  #Make sure directory exists
@@ -562,7 +562,10 @@ module ZuoraAPI
562
562
  http = Net::HTTP.new(uri.host, uri.port)
563
563
  http.read_timeout = timeout #Seconds
564
564
  http.use_ssl = true if uri.scheme.downcase == 'https'
565
- headers = headers.merge({"Authorization" => self.get_session(prefix: true, auth_type: session_type)}) if z_session
565
+ if z_session
566
+ headers = headers.merge({"Authorization" => self.get_session(prefix: true)})
567
+ headers = headers.merge({"entityId" => self.entity_id}) if !self.entity_id.blank?
568
+ end
566
569
 
567
570
  response_save = nil
568
571
  http.request_get(uri.request_uri, headers) do |response|
@@ -575,13 +578,15 @@ module ZuoraAPI
575
578
  raise
576
579
 
577
580
  when Net::HTTPUnauthorized
581
+ if count <= 0
582
+ if z_session
583
+ raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new(self.current_error)
584
+ else
585
+ raise
586
+ end
587
+ end
578
588
  Rails.logger.fatal("Unauthorized: Retry")
579
- if z_session
580
- raise ZuoraAPI::Exceptions::ZuoraAPISessionError.new(self.current_error) if count <= 0
581
- self.new_session
582
- else
583
- raise if count <= 0
584
- end
589
+ self.new_session if z_session
585
590
  return get_file(:url => url, :headers => headers, :count => count - 1, :z_session => z_session, :tempfile => tempfile, :file_path => file_path, :timeout_retries => timeout_retries, :timeout => timeout)
586
591
 
587
592
  when Net::ReadTimeout, Net::OpenTimeout, Errno::EPIPE, Errno::ECONNRESET, OpenSSL::SSL::SSLError, Errno::ECONNREFUSED, SocketError
@@ -598,20 +603,30 @@ module ZuoraAPI
598
603
  end
599
604
  Rails.logger.debug("Headers: #{headers.to_s}")
600
605
 
606
+ if output_file_name.present?
607
+ file_ending ||= output_file_name.end_with?(".csv.zip") ? ".csv.zip" : File.extname(output_file_name)
608
+ filename ||= File.basename(output_file_name, file_ending)
609
+ end
610
+
601
611
  size, export_progress = [0, 0]
602
612
  encoding, type, full_filename = [nil, nil, nil]
603
613
  if response.header["Content-Disposition"].present?
604
614
  case response.header["Content-Disposition"]
605
615
  when /.*; filename\*=.*/
606
- full_filename = /.*; filename\*=(.*)''(.*)/.match(response.header["Content-Disposition"])[2].strip
616
+ full_filename ||= /.*; filename\*=(.*)''(.*)/.match(response.header["Content-Disposition"])[2].strip
607
617
  encoding = /.*; filename\*=(.*)''(.*)/.match(response.header["Content-Disposition"])[1].strip
608
618
  when /.*; filename=/
609
- full_filename = /.*; filename=(.*)/.match(response.header["Content-Disposition"])[1].strip
619
+ full_filename ||= /.*; filename=(.*)/.match(response.header["Content-Disposition"])[1].strip
620
+ else
621
+ raise "Can't parse Content-Disposition header: #{response.header["Content-Disposition"]}"
610
622
  end
611
- file_ending = ".#{full_filename.partition(".").last}"
623
+ file_ending ||= full_filename.end_with?(".csv.zip") ? ".csv.zip" : File.extname(full_filename)
624
+ filename ||= File.basename(full_filename, file_ending)
612
625
  end
626
+
613
627
  #If user supplied a filename use it, else default to content header filename, else default to uri pattern
614
- filename = full_filename.present? ? full_filename.split(file_ending).first : File.basename(uri.path).rpartition('.').first
628
+ file_ending ||= uri.path.end_with?(".csv.zip") ? ".csv.zip" : File.extname(uri.path)
629
+ filename ||= File.basename(uri.path, file_ending)
615
630
 
616
631
  if response.header["Content-Type"].present?
617
632
  case response.header["Content-Type"]
@@ -631,16 +646,14 @@ module ZuoraAPI
631
646
  export_size = response.header["ContentLength"].to_i
632
647
  end
633
648
 
634
- file_handle = nil
635
- timestamp = Time.now.to_i
649
+ file_prefix = add_timestamp ? "#{filename}_#{Time.now.to_i}" : filename
636
650
  if tempfile
637
651
  require 'tempfile'
638
- file_handle = ::Tempfile.new(["#{filename}_#{timestamp}", "#{file_ending}"], file_path)
639
- file_handle.binmode
652
+ file_handle = ::Tempfile.new([file_prefix, "#{file_ending}"], file_path)
640
653
  else
641
- file_handle = File.new(file_path.join("#{filename}_#{timestamp}#{file_ending}"), "w+")
642
- file_handle.binmode
654
+ file_handle = File.new(file_path.join("#{file_prefix}#{file_ending}"), "w+")
643
655
  end
656
+ file_handle.binmode
644
657
 
645
658
  response.read_body do |chunk|
646
659
  file_handle << chunk.force_encoding(encoding)
@@ -1,3 +1,3 @@
1
1
  module ZuoraAPI
2
- VERSION = "1.6.08"
2
+ VERSION = "1.6.10"
3
3
  end
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.6.08
4
+ version: 1.6.10
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-09-27 00:00:00.000000000 Z
11
+ date: 2018-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler