class KSequencing::Connection
Public Instance Methods
get(path, options = {})
click to toggle source
# File lib/k_sequencing/connection.rb, line 7 def get(path, options = {}) @response = connection.get do |request| request.url(path) request.headers['Content-Type'] = 'application/json' request.headers['Authorization'] = options[:token] unless options[:token].nil? request.params = options[:path_param] ? prediction_options(options) : options end Response.new(data, status_code, message, meta, total) rescue Error, Faraday::Error => e handle_error(e) end
post(path, options = {}, query_params = {})
click to toggle source
# File lib/k_sequencing/connection.rb, line 19 def post(path, options = {}, query_params = {}) @response = connection.post do |request| request.path = path request.headers['Content-Type'] = 'application/json' request.headers['Authorization'] = options[:token] unless options[:token].nil? request.params = query_params request.body = options unless options.nil? end Response.new(data, status_code, message, meta, nil) rescue Error, Faraday::Error => e handle_error(e) end
Private Instance Methods
connection()
click to toggle source
# File lib/k_sequencing/connection.rb, line 34 def connection options = { url: 'https://k-sequencing.datawow.io/' } @connection ||= Faraday::Connection.new(options) do |connection| connection.request :url_encoded connection.request :json connection.response :json connection.use KSequencing::FaradayMiddleware::RaiseHttpException connection.use :gzip connection.adapter Faraday.default_adapter end end
data()
click to toggle source
# File lib/k_sequencing/connection.rb, line 49 def data @response.body['data'] end
handle_error(exception)
click to toggle source
# File lib/k_sequencing/connection.rb, line 69 def handle_error(exception) if exception.is_a?(Faraday::ConnectionFailed) code = 599 message = 'Connection Failed' else code = exception.to_s.partition(':').first message = exception.to_s.partition(':').last end Response.new(nil, code, message, nil) end
message()
click to toggle source
# File lib/k_sequencing/connection.rb, line 61 def message meta['message'] unless meta.nil? end
meta()
click to toggle source
# File lib/k_sequencing/connection.rb, line 53 def meta @response.body['meta'] end
prediction_options(options)
click to toggle source
# File lib/k_sequencing/connection.rb, line 81 def prediction_options(options) %i[id path_param].each { |e| options.delete(e) } options end
status_code()
click to toggle source
# File lib/k_sequencing/connection.rb, line 57 def status_code meta['code'] unless meta.nil? end
total()
click to toggle source
# File lib/k_sequencing/connection.rb, line 65 def total meta['total_count'] unless meta.nil? end