Module: Creditario::API::Request
- Defined in:
- lib/creditario/api/request.rb
Overview
Creditario::API::Request
Modulo encargado de ejecutar los requests HTTP de cualquier tipo a la API de creditar.io
Class Method Summary collapse
-
.request(method, path, params = {}) ⇒ Object
Ejecuta un request HTTP a la API de creditar.io.
Class Method Details
.request(method, path, params = {}) ⇒ Object
Ejecuta un request HTTP a la API de creditar.io
Los sÃmbolos aceptados en el parámetro method
son:
-
:get
-
:post
-
:delete
-
:patch
-
:multipart
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/creditario/api/request.rb', line 31 def request(method, path, params = {}) uri = URI(Creditario::Client.api_base + path) request = request_from_method(method, uri, params) request["User-Agent"] = "creditario-client gem v#{Creditario::Client::VERSION}" request["Accept"] = "application/vnd.creditar.v#{Creditario::Client.api_version}+json" response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request) end handle_errored_responses(response) return response if response.code == "204" && response.body.nil? response_body = handle_responses(response) Oj.load(response_body) rescue Oj::ParseError => ex raise Exceptions::InvalidResponseBodyError, ex. rescue Net::OpenTimeout => ex raise Exceptions::APIBusyError, ex. rescue Errno::ECONNREFUSED => ex raise Exceptions::APINotReachableError, ex. end |