Module: Isaca::Request
- Defined in:
- lib/isaca/requests/log_out.rb,
lib/isaca/requests/request.rb,
lib/isaca/requests/countries.rb,
lib/isaca/requests/get_user_by_id.rb,
lib/isaca/requests/report_consent.rb,
lib/isaca/requests/authenticate_user.rb,
lib/isaca/requests/explicit_countries.rb,
lib/isaca/requests/get_user_details_by_token.rb
Defined Under Namespace
Modules: Countries, ExplicitCountries, GetUserByID, LogOut, ReportConsent Classes: AuthenticateUser, GetUserDetailsByToken
Class Method Summary collapse
-
.get ⇒ Faraday::Response
Generic GET request used to build REST calls.
-
.raise_response_error(response) ⇒ Object
Testing Request#get is difficult so this method was created for easier testing and stubbing.
-
.set_default_request_options(request) ⇒ Object
Helper method used to set common request headers used throughout the API.
Class Method Details
.get ⇒ Faraday::Response
Generic GET request used to build REST calls
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/isaca/requests/request.rb', line 12 def self.get # :yields: [Faraday::Request] Yields a request object. conn = Faraday.new(url: Isaca.configuration.url) conn.ssl.verify_mode = OpenSSL::SSL::VERIFY_NONE unless Isaca.configuration.verify_ssl response = conn.get do |request| (request) yield(request) if block_given? end Isaca.logger.debug("\n" + response.inspect + "\n") if Isaca.configuration.debug response.success? ? response : raise_response_error(response) end |
.raise_response_error(response) ⇒ Object
Testing Request#get is difficult so this method was created for easier testing and stubbing
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/isaca/requests/request.rb', line 32 def self.raise_response_error(response) case response.status when 400 raise ServiceError.new('A bad request was sent to the ISACA server.') when 403 raise PartnerKeyError.new('Access denied as the provided partner key is not valid.') when 404 raise ServiceError.new('Endpoint not found.') when 500 raise ServiceError.new('An error occurred on the ISACA server.') else raise ServiceError.new("Response returned an unhandled status code: #{response.status}") end end |
.set_default_request_options(request) ⇒ Object
Helper method used to set common request headers used throughout the API
50 51 52 53 54 55 56 |
# File 'lib/isaca/requests/request.rb', line 50 def self.(request) uri = URI(Isaca.configuration.url) request.path = uri.path request.headers['Content-Type'] = 'application/json' request.headers['User-Agent'] = Isaca.configuration.user_agent request.params['secPass'] = Isaca.configuration.secret_pass end |