Class: Readiness::Zendesk::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/support_readiness/zendesk/client.rb

Overview

Defines the class Client within the module Readiness::Zendesk.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = Readiness::Zendesk::Configuration.new) ⇒ Client

Creates a new Readiness::Zendesk::Client instance

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)

Parameters:

Author:

  • Jason Colyer

Since:

  • 1.0.0



28
29
30
31
# File 'lib/support_readiness/zendesk/client.rb', line 28

def initialize(config = Readiness::Zendesk::Configuration.new)
  @connection = generate_connection(config)
  @upload_connection = generate_upload_connection(config)
end

Instance Attribute Details

#connectionObject (readonly)

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/client.rb', line 13

def connection
  @connection
end

#upload_connectionObject (readonly)

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/client.rb', line 13

def upload_connection
  @upload_connection
end

Instance Method Details

#generate_connection(config) ⇒ Object

Used to generate a Faraday connection

Parameters:

Returns:

  • (Object)

Author:

  • Jason Colyer

Since:

  • 1.0.0



57
58
59
60
61
62
63
64
# File 'lib/support_readiness/zendesk/client.rb', line 57

def generate_connection(config)
  Faraday.new(config.url) do |c|
    c.request :retry, retry_options(config)
    c.adapter Faraday.default_adapter
    c.headers['Content-Type'] = 'application/json'
    c.headers['Authorization'] = "Basic " + Base64.encode64("#{config.username}/token:#{config.token}").gsub("\n", '')
  end
end

#generate_upload_connection(config) ⇒ Object

Used to generate a Faraday connection for uploads

Parameters:

Returns:

  • (Object)

Author:

  • Jason Colyer

Since:

  • 1.0.0



73
74
75
76
77
78
79
80
81
# File 'lib/support_readiness/zendesk/client.rb', line 73

def generate_upload_connection(config)
  Faraday.new(config.url) do |c|
    c.request :retry, retry_options(config)
    c.request :multipart
    c.request :url_encoded
    c.adapter Faraday.default_adapter
    c.headers['Authorization'] = "Basic " + Base64.encode64("#{config.username}/token:#{config.token}").gsub("\n", '')
  end
end

#retry_options(config) ⇒ Hash

Used to generate the retry options passed to Faraday via faraday-retry

Parameters:

Returns:

  • (Hash)

Author:

  • Jason Colyer

Since:

  • 1.0.0



40
41
42
43
44
45
46
47
48
# File 'lib/support_readiness/zendesk/client.rb', line 40

def retry_options(config)
  {
    max: config.retry_max,
    interval: config.retry_interval,
    interval_randomness: config.retry_randomness,
    backoff_factor: config.retry_backoff,
    exceptions: config.retry_exceptions
  }
end