class Zoho::People::API

Constants

URL

Attributes

auth_token[R]

Public Class Methods

new(auth_token: ENV['ZOHO_PEOPLE_AUTH_TOKEN']) click to toggle source
# File lib/zoho/people/api.rb, line 14
def initialize(auth_token: ENV['ZOHO_PEOPLE_AUTH_TOKEN'])
  raise 'You must provide Zoho People authentication token' unless auth_token

  @auth_token = auth_token
end

Public Instance Methods

get_attendance_report(email:, from:, to:) click to toggle source
# File lib/zoho/people/api.rb, line 32
def get_attendance_report(email:, from:, to:)
  params = {
    'authtoken' => auth_token,
    'dateFormat' => 'yyyy-MM-dd',
    'emailId' => email,
    'sdate' => from.strftime('%Y-%m-%d'),
    'edate' => to.strftime('%Y-%m-%d')
  }

  data = request(:get, 'attendance/getUserReport', params: params)

  AttendanceReport.parse(data)
end
post_attendance(attendance) click to toggle source
# File lib/zoho/people/api.rb, line 20
def post_attendance(attendance)
  params = {
    'authtoken' => auth_token,
    'dateFormat' => 'dd/MM/yyyy HH:mm:ss',
    'emailId' => attendance.email,
    'checkIn' => attendance.check_in.strftime('%d/%m/%Y %H:%M:%S'),
    'checkOut' => attendance.check_out.strftime('%d/%m/%Y %H:%M:%S')
  }

  request(:post, 'attendance', params: params)
end

Private Instance Methods

request(method, endpoint, options) click to toggle source
# File lib/zoho/people/api.rb, line 48
def request(method, endpoint, options)
  response = HTTP.method(method).call("#{URL}/#{endpoint}", options)

  if response.status.success?
    response.parse
  elsif response
    raise "Failed to #{method.to_s.upcase} #{endpoint}. Error: #{response.body}"
  else
    raise 'Failed to request Zoho API'
  end
end