Module: Quark::Publisher::Request

Defined in:
lib/quark/publisher/request.rb

Class Method Summary collapse

Class Method Details

.getObject

:yields: [Faraday::Request] Yields a request object.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/quark/publisher/request.rb', line 6

def self.get # :yields: [Faraday::Request] Yields a request object.
  conn = Faraday.new(url: Quark::Publisher.configuration.base_uri)
  conn.ssl.verify_mode = OpenSSL::SSL::VERIFY_NONE unless Isaca.configuration.verify_ssl

  response = conn.get do |request|
    set_default_request_options(request)
    yield(request) if block_given?
  end

  if response.success?
    return response
  else
    xml = Nokogiri::XML(response.body)
    exception_code = xml.xpath("//exceptionCode")

    if exception_code.text
      reason = exception_code.text
    else
      reason = 'unknown'
    end

    raise ServiceError.new "Error when calling Quark Publisher. [Status Code: #{response.status}] #{reason}"
  end
end