class SmartHR::Client

Public Class Methods

new(tenant_id: nil, access_token: nil, sandbox: false, header: {}, api_version: 'v1') click to toggle source
# File lib/smarthr/client.rb, line 39
def initialize(tenant_id: nil, access_token: nil, sandbox: false, header: {}, api_version: 'v1')
  raise unless tenant_id
  raise unless access_token

  url = sprintf(sandbox ? "https://%s.daruma.space/api/" : "https://%s.smarthr.jp/api/", tenant_id)
  header.merge!({
    "User-Agent" => "SmartHR/#{api_version} RubyBinding/#{SmartHR::VERSION}",
    "Authorization" => "Bearer #{access_token}"
  })

  @conn = Faraday.new(url, headers: header) do |builder|
    builder.request :url_encoded
    builder.response :mashify
    builder.response :json
    builder.adapter Faraday.default_adapter
  end
  @api_version = api_version
end

Public Instance Methods

handle_response(response) click to toggle source
# File lib/smarthr/client.rb, line 58
def handle_response(response)
  case response.status
  when 200..299
    response.body
  else
    puts response.status
    puts response.body
    raise SmartHR::Error.from_response(response.status, response.body)
  end
end