Class: SupportOps::Calendly::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/support_ops_calendly/calendly/client.rb

Overview

Defines the class Client within the module SupportOps::Calendly.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Defined Under Namespace

Classes: Error, RequestError, ResourceNotFound

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = SupportOps::Calendly::Configuration.new) ⇒ Client

Returns a new instance of Client.

Since:

  • 1.0.0



19
20
21
22
23
24
# File 'lib/support_ops_calendly/calendly/client.rb', line 19

def initialize(config = SupportOps::Calendly::Configuration.new)
  if config[:token].nil?
    raise 'No authentication token provided'
  end
  @connection = generate_connection(config)
end

Instance Attribute Details

#connectionObject (readonly)

Since:

  • 1.0.0



17
18
19
# File 'lib/support_ops_calendly/calendly/client.rb', line 17

def connection
  @connection
end

Instance Method Details

#generate_connection(config) ⇒ Object

Since:

  • 1.0.0



36
37
38
39
40
41
42
43
# File 'lib/support_ops_calendly/calendly/client.rb', line 36

def generate_connection(config)
  Faraday.new('https://api.calendly.com') do |c|
    c.request :retry, retry_options(config)
    c.adapter Faraday.default_adapter
    c.headers['Content-Type'] = 'application/json'
    c.headers['Authorization'] = "Bearer #{config[:token]}"
  end
end

#retry_options(config) ⇒ Object

Since:

  • 1.0.0



26
27
28
29
30
31
32
33
34
# File 'lib/support_ops_calendly/calendly/client.rb', line 26

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