class CzechPostB2bClient::Services::XsdsDownloader

Attributes

xsd_uri[R]

Public Class Methods

new(_anything) click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 9
def initialize(_anything); end

Public Instance Methods

steps() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 11
def steps
  %i[download_xsds]
end

Private Instance Methods

download() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 28
def download # rubocop:disable Metrics/AbcSize
  self.response = https_conn.request(request)

  debug_msg = "CzechPost XSD REQUEST: #{request} to #{xsd_uri} with body:\n#{request.body} => #{response.code}"
  CzechPostB2bClient.logger.debug(debug_msg)

  raise "Error in downloading #{xsd_uri} => #{response}" unless response.code.to_i == 200

  save_response_to_file
rescue *KNOWN_CONNECTION_ERRORS => e
  raise "Error in downloading #{xsd_uri} => #{e.message}"
end
download_xsds() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 19
def download_xsds
  xsd_uris = configuration.namespaces.values
  xsd_uris.each do |uri|
    # check for  `.xsd` at end?
    @xsd_uri = URI.parse(uri)
    download
  end
end
headers() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 56
def headers
  {}
end
https_conn() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 41
def https_conn
  Net::HTTP.start(xsd_uri.host, xsd_uri.port, connection_options)
end
request() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 45
def request
  Net::HTTP::Get.new xsd_uri.request_uri, headers
end
save_response_to_file() click to toggle source
# File lib/czech_post_b2b_client/services/xsds_downloader.rb, line 49
def save_response_to_file
  filename = xsd_uri.request_uri.split('/').last
  filename += '.xsd' if filename.split('.').last.downcase != 'xsd'

  File.write(filename, response.body)
end