class Freee::Pigmon::APIClient

Constants

HR_API_URL

Attributes

access_token[RW]

Public Class Methods

new(access_token) click to toggle source
# File lib/freee/pigmon/api_client.rb, line 10
def initialize(access_token)
  self.access_token = access_token
end

Public Instance Methods

api_client() click to toggle source
# File lib/freee/pigmon/api_client.rb, line 66
def api_client
  client = Faraday.new(url: HR_API_URL) do |faraday|
    faraday.request :json
    faraday.response :json, content_type: /\bjson$/
    faraday.adapter Faraday.default_adapter
  end
  client.authorization :Bearer, access_token
  client
end
check_available_time_clock_types(employee_id, company_id) click to toggle source
# File lib/freee/pigmon/api_client.rb, line 26
def check_available_time_clock_types(employee_id, company_id)
  path = "/hr/api/v1/employees/#{employee_id}/time_clocks/available_types"
  params = { company_id: company_id }
  response = request_api(path, :get, params)
  response.body['available_types']
end
fetch_user_info_hash() click to toggle source
# File lib/freee/pigmon/api_client.rb, line 14
def fetch_user_info_hash
  response = request_api('/hr/api/v1/users/me', :get, nil)
  company_info_hash = response.body['companies'].first
  company_id = company_info_hash['id']
  employee_id = company_info_hash['employee_id']

  {
    company_id: company_id,
    employee_id: employee_id
  }
end
get_time_clocks(employee_id, company_id, from_date: nil, to_date: nil, per: nil, page: nil) click to toggle source
# File lib/freee/pigmon/api_client.rb, line 40
def get_time_clocks(employee_id, company_id, from_date: nil, to_date: nil, per: nil, page: nil)
  path = "/hr/api/v1/employees/#{employee_id}/time_clocks"
  params = {
    company_id: company_id,
    from_date:  from_date,
    to_date:    to_date,
    per:        per,
    page:       page,
  }
  response = request_api(path, :get, params)
  response
end
post_time_clock(employee_id, company_id, type) click to toggle source
# File lib/freee/pigmon/api_client.rb, line 33
def post_time_clock(employee_id, company_id, type)
  path = "/hr/api/v1/employees/#{employee_id}/time_clocks"
  params = { company_id: company_id, type: type }
  response = request_api(path, :post, params)
  response
end
request_api(path, method, params) click to toggle source
# File lib/freee/pigmon/api_client.rb, line 53
def request_api(path, method, params)
  client = api_client
  response = client.send(method) do |req|
    req.url path
    req.body = params.to_json unless params.nil?
  end
  case response.status
  when 401
    raise 'Unauthorized'
  end
  response
end