class Freshdesk::Base

Attributes

apikey[RW]
domain[RW]

Public Class Methods

new(attrs = {}) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 8
def initialize(attrs = {})
  @attrs = attrs.dup
  @attrs.each do |key,value|
    self.instance_variable_set("@#{key}".to_sym, value)
  end
end

Public Instance Methods

all(options = {}) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 20
def all(options = {})
  items = []
  link = nil
  page = options[:page] || 1
  per_page = options[:per_page] || 100
  begin
    response = client.get("/#{resource_name}",
      options.merge(:page => page, :per_page => per_page))
    link = response.headers['link']
    response.parsed_response.map { |source| items.push(self.class.new(source)) } if response.success?
    page += 1
  end until link.nil?
  items
end
connected?() click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 15
def connected?
  response = client.get("tickets")
  response.success?
end
create(options = {},body = {}) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 35
def create(options = {},body = {})
  response = client.post("/#{resource_name}", options, body)
  self.class.new(response) if response.success?
end
delete(id) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 49
def delete(id)
  response = client.delete("/#{resource_name}/#{id}")
  response.success?
end
delete_all() click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 54
def delete_all
  all.each {|s| delete(s.id) }
end
find(id, options = {}) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 40
def find(id, options = {})
  response = client.get("/#{resource_name}/#{id}", options)
  self.class.new(response) if response.success?
end
update(id, options = {}) click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 45
def update(id, options = {})
  client.class.put("/#{resource_name}/#{id}", {}, options)
end

Private Instance Methods

client() click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 65
def client
  @client ||= Util::Client.new(@attrs)
end
resource_name() click to toggle source
# File lib/freshdesk/api/v2/base.rb, line 60
def resource_name
  class_name = self.class.name.split("::")
  class_name.last(class_name.size-1).join('/').downcase
end