Module: SparkApi::Connection

Included in:
Client
Defined in:
lib/spark_api/connection.rb

Overview

Connection

Mixin module for handling http connection information

Instance Method Summary collapse

Instance Method Details

#connection(force_ssl = false) ⇒ Object

Main connection object for running requests. Bootstraps the Faraday abstraction layer with our client configuration.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/spark_api/connection.rb', line 10

def connection(force_ssl = false)
  opts = {
    :headers => headers
  }
  if(force_ssl || self.ssl)
    opts[:ssl] = {:verify => false } unless self.ssl_verify
    opts[:url] = @endpoint.sub /^http:/, "https:"
  else 
    opts[:url] = @endpoint.sub /^https:/, "http:"
  end

  if self.compress
    opts[:headers]["Accept-Encoding"] = 'gzip, deflate'
  end

  conn = Faraday.new(opts) do |conn|
    conn.response :spark_api
    conn.options[:timeout] = self.timeout
    conn.adapter Faraday.default_adapter
  end
  SparkApi.logger.debug { "Connection: #{conn.inspect}" }
  conn
end

#headersObject

HTTP request headers for client requests



35
36
37
38
39
40
41
42
# File 'lib/spark_api/connection.rb', line 35

def headers
  {
    :accept => 'application/json',
    :content_type => 'application/json',
    :user_agent => Configuration::DEFAULT_USER_AGENT,
    Configuration::X_SPARK_API_USER_AGENT => user_agent
  }
end