zuora_api 1.6.08 → 1.6.10

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