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