module Katinguele::Client::Requester
Constants
- METHODS
Public Class Methods
extended(base)
click to toggle source
# File lib/katinguele/client/requester.rb, line 11 def self.extended(base) METHODS.each do |method| base.send( :define_singleton_method, method, ->(options = {}) { katinguele_client_request(options, method) } ) end end
Public Instance Methods
build_faraday_client(request)
click to toggle source
# File lib/katinguele/client/requester.rb, line 66 def build_faraday_client(request) Faraday.new(request.uri) do |config| config.use(Faraday::Response::RaiseError) if request.raise_error config.headers = request.headers if request.headers config.options[:open_timeout] = request.open_timeout if request.open_timeout config.options[:timeout] = request.timeout if request.timeout config.adapter(Faraday.default_adapter) end end
build_faraday_request(req, client, method)
click to toggle source
# File lib/katinguele/client/requester.rb, line 60 def build_faraday_request(req, client, method) client.send(method) do |faraday_req| faraday_req.body = req.payload.to_json if req.payload end end
build_final_request(options, method)
click to toggle source
# File lib/katinguele/client/requester.rb, line 38 def build_final_request(options, method) build_katinguele_request_lazy Katinguele.configuration .request_by(katinguele_options[:request], options) .tap do |request| request.before!(request) request.method = method request.log if request.logger end end
build_katinguele_request_lazy()
click to toggle source
# File lib/katinguele/client/requester.rb, line 50 def build_katinguele_request_lazy return unless katinguele_options.dig(:service_options, :lazy) build_katinguele_request(true) end
katinguele_client_request(options, method)
click to toggle source
# File lib/katinguele/client/requester.rb, line 21 def katinguele_client_request(options, method) request = build_final_request(options, method) build_faraday_client(request) .then { |client| build_faraday_request(request, client, method) } .then { |response| Katinguele::Response.new(response) } .tap { |response| response.log if request.logger } .tap { |response| request.after!(request, response, nil) } rescue Faraday::Error => e response = Katinguele::Response.new(e) error = Katinguele::RequestErrorFactory.build(response) error.log if request.logger return response if rescue_faraday_error?(request, response, error) raise error end
rescue_faraday_error?(req, res, err)
click to toggle source
# File lib/katinguele/client/requester.rb, line 56 def rescue_faraday_error?(req, res, err) req.after!(req, res, err) || (err.is_a?(Katinguele::TimeoutError) && !req.raise_error) end