class Lifen::Client
Public Instance Methods
get(url, params = {})
click to toggle source
# File lib/lifen/client.rb, line 33 def get(url, params = {}) request(:get, url, params) end
post(url, params = {})
click to toggle source
# File lib/lifen/client.rb, line 25 def post(url, params = {}) request(:post, url, params) end
put(url, params = {})
click to toggle source
# File lib/lifen/client.rb, line 29 def put(url, params = {}) request(:put, url, params) end
request(mode, url, params = {})
click to toggle source
# File lib/lifen/client.rb, line 4 def request(mode, url, params = {}) before_request response = faraday_client.send(mode) do |req| req.url url req.headers['Authorization'] = "Bearer #{bearer}" req.headers['Accept'] = use_and_remove_accept(params) if mode == :post req.headers['Content-Type'] = "application/json" end req.body = JSON.generate(params) end handle_errors(response, params) handle_response(response) end
Private Instance Methods
bearer()
click to toggle source
# File lib/lifen/client.rb, line 97 def bearer raise "A bearer method must be defined" end
before_request()
click to toggle source
# File lib/lifen/client.rb, line 80 def before_request end
faraday_client()
click to toggle source
# File lib/lifen/client.rb, line 58 def faraday_client @faraday_client ||= Faraday.new(faraday_options) do |faraday| faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end end
faraday_options()
click to toggle source
# File lib/lifen/client.rb, line 64 def faraday_options options = {url: site} options[:proxy] = proxy_url if !proxy_url.nil? options end
handle_errors(response, params)
click to toggle source
# File lib/lifen/client.rb, line 39 def handle_errors(response, params) if response.status == 500 json = JSON.parse response.body trace_id = json.fetch("X-B3-TraceId", "unknown") raise Error, "Error 500, Internal server error (trace ID: #{trace_id}), #{response_error(response, params)}" end end
handle_response(response)
click to toggle source
# File lib/lifen/client.rb, line 50 def handle_response(response) if response.headers['Content-Type'].match "json" JSON.parse response.body else response.body end end
proxy_url()
click to toggle source
# File lib/lifen/client.rb, line 76 def proxy_url Lifen.configuration.proxy_url end
response_error(response, params)
click to toggle source
# File lib/lifen/client.rb, line 83 def response_error(response, params) params[:payload] = "filtered" if params.is_a?(Hash) and params.has_key? :payload "#{response.env.method.upcase} '#{response.env.url}' with params '#{params.inspect}' and bearer '#{trucanted_bearer}'" end
site()
click to toggle source
# File lib/lifen/client.rb, line 72 def site Lifen.configuration.site end
trucanted_bearer()
click to toggle source
# File lib/lifen/client.rb, line 89 def trucanted_bearer if m = /^(.{24})(.*)$/.match(bearer) "#{m[1]}#{"*" * m[2].length}" else bearer end end
use_and_remove_accept(params)
click to toggle source
# File lib/lifen/client.rb, line 101 def use_and_remove_accept(params) return params.delete :accept if params.is_a?(Hash) and params.has_key? :accept "application/json" end