class Lightrail::Connection

Public Class Methods

connection() click to toggle source
# File lib/lightrail_client/connection.rb, line 3
def self.connection
  conn = Faraday.new Lightrail.api_base, ssl: {version: :TLSv1_2}
  conn.headers['Content-Type'] = 'application/json; charset=utf-8'
  conn.headers['Authorization'] = "Bearer #{Lightrail.api_key}"
  conn.headers['User-Agent'] = "Lightrail-Ruby/#{Gem.loaded_specs['lightrail_client'].version.version}"
  conn
end
delete(url) click to toggle source
# File lib/lightrail_client/connection.rb, line 27
def self.delete (url)
  resp = Lightrail::Connection.connection.delete do |req|
    req.url url
  end
  self.handle_response(resp)
end
format_response(response) click to toggle source
# File lib/lightrail_client/connection.rb, line 52
def self.format_response(response)
  body = JSON.parse(response.body) || {}
  text = response.body
  links, limit, max_limit = nil
  if response.headers["link"]
    links = self.parse_link_headers(response.headers["link"])
    limit = response.headers["limit"].to_i
    max_limit = response.headers["max-limit"].to_i
  end
  return LightrailResponse.new(body, text, response.status, links, limit, max_limit)
end
get(url, query_params = {}) click to toggle source
# File lib/lightrail_client/connection.rb, line 34
def self.get(url, query_params = {})
  resp = Lightrail::Connection.connection.get {|req| req.url url, query_params}
  self.handle_response(resp, false)
end
handle_response(response, error_on_404 = true) click to toggle source
# File lib/lightrail_client/connection.rb, line 39
def self.handle_response(response, error_on_404 = true)
  case response.status
  when 200...300
    return format_response(response)
  else
    if response.status == 404 && !error_on_404
      return format_response(response)
    end
    body = JSON.parse(response.body) || {}
    raise LightrailError.new("Server responded with: (#{response.status}) #{body['message'] || ''}", response.status, response)
  end
end
patch(url, body) click to toggle source
# File lib/lightrail_client/connection.rb, line 19
def self.patch (url, body)
  resp = Lightrail::Connection.connection.patch do |req|
    req.url url
    req.body = JSON.generate(body)
  end
  self.handle_response(resp)
end
post(url, body) click to toggle source
# File lib/lightrail_client/connection.rb, line 11
def self.post (url, body)
  resp = Lightrail::Connection.connection.post do |req|
    req.url url
    req.body = JSON.generate(body)
  end
  self.handle_response(resp)
end