class Freshdesk::Resource

Attributes

endpoint[R]
params[R]

Public Class Methods

new(endpoint, params = {}, id = nil) click to toggle source
# File lib/freshdesk/resource.rb, line 6
def initialize(endpoint, params = {}, id = nil)
  @endpoint             = endpoint
  @params               = params
  @id                   = id
  @domain               = Freshdesk.domain
  @user_name_or_api_key = Freshdesk.user_name_or_api_key
  @password_or_x        = Freshdesk.password_or_x
  @api_version          = Freshdesk.api_version

  @resource ||= RestClient::Resource.new(
    api_url,
    @user_name_or_api_key,
    @password_or_x
  )
end

Public Instance Methods

api_url() click to toggle source
# File lib/freshdesk/resource.rb, line 24
def api_url
  "https://#{@domain}.freshdesk.com/api/#{@api_version}#{@endpoint}"
end
delete() click to toggle source
# File lib/freshdesk/resource.rb, line 44
def delete
  @resource.delete(accept: "application/json")
rescue RestClient::Exception => e
  raise e, api_error_message(e)
end
get() click to toggle source
# File lib/freshdesk/resource.rb, line 38
def get
  @resource.get(accept: "application/json")
rescue RestClient::Exception => e
  raise e, api_error_message(e)
end
json_payload() click to toggle source
# File lib/freshdesk/resource.rb, line 28
def json_payload
  @params.to_json
end
post() click to toggle source
# File lib/freshdesk/resource.rb, line 32
def post
  @resource.post(json_payload, content_type: "application/json")
rescue RestClient::Exception => e
  raise e, api_error_message(e)
end
put() click to toggle source
# File lib/freshdesk/resource.rb, line 50
def put
  @resource.put(json_payload, content_type: "application/json")
rescue RestClient::Exception => e
  raise e, api_error_message(e)
end

Private Instance Methods

api_error_message(e) click to toggle source
# File lib/freshdesk/resource.rb, line 58
def api_error_message(e)
  "API Error: Your request is not successful." \
  "If you are not able to debug this error properly, mail us at support@freshdesk.com with the follwing X-Request-Id" \
  "X-Request-Id : #{e.response.headers[:x_request_id]}" \
  "Response Code: #{e.response.code} Response Body: #{e.response.body}"
end