Class: Zensana::Zendesk

Inherits:
Object
  • Object
show all
Includes:
HTTMultiParty
Defined in:
lib/zensana/services/zendesk.rb,
lib/zensana/models/zendesk/user.rb,
lib/zensana/models/zendesk/group.rb,
lib/zensana/models/zendesk/ticket.rb,
lib/zensana/models/zendesk/comment.rb,
lib/zensana/models/zendesk/attachment.rb

Defined Under Namespace

Modules: Access Classes: Attachment, Comment, Group, Ticket, User

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeZendesk

Returns a new instance of Zendesk.



19
20
21
22
# File 'lib/zensana/services/zendesk.rb', line 19

def initialize
  self.class.base_uri "https://#{ENV['ZENDESK_DOMAIN']}.zendesk.com/api/v2"
  self.class.basic_auth ENV['ZENDESK_USERNAME'], ENV['ZENDESK_PASSWORD']
end

Class Method Details

.instObject

debug_output



9
10
11
# File 'lib/zensana/services/zendesk.rb', line 9

def self.inst
  @inst ||= new
end

Instance Method Details

#create(path, params = {}, &block) ⇒ Object



28
29
30
# File 'lib/zensana/services/zendesk.rb', line 28

def create(path, params={}, &block)
  request :post, path, params, &block
end

#fetch(path, params = {}, &block) ⇒ Object



24
25
26
# File 'lib/zensana/services/zendesk.rb', line 24

def fetch(path, params={}, &block)
  request :get, path, params, &block
end

#request(method, path, params = {}, &block) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/zensana/services/zendesk.rb', line 32

def request(method, path, params={}, &block)
  unless params[:headers]
    params[:headers] = {
      "Content-Type" => "application/json"
    }
  end
  path = relative_path(path)
  result = self.class.send(method, path, params)

  Zensana::Error.handle_http_errors result

  Zensana::Response.new(result).tap do |response|
    block.call(response) if block_given?
  end
end